Vrienden systeem
Hallo Progammeurs,
Ik ben bezig met een community en daar voor heb ik ook een vrienden systeem voor nodig. Alleen ik weet niet hoe ik moet beginnen met de database.
Moet ik een aparte Tabel aanmaken of niet?
En welke fields moeten er allemaal in?
Ik krijg graag antwoord!
Ik ben bezig met een community en daar voor heb ik ook een vrienden systeem voor nodig. Alleen ik weet niet hoe ik moet beginnen met de database.
Moet ik een aparte Tabel aanmaken of niet?
En welke fields moeten er allemaal in?
Ik krijg graag antwoord!
Je zult je gebruikerstabel moeten maken, en een many to many tabel die laat zien wie vrienden zijn...
user
- id
- username
- password
etc etc.
friend
- user_id
- friend_id
Voorbeeldje...
user
- id
- username
- password
etc etc.
friend
- user_id
- friend_id
Voorbeeldje...
Oke maar degene moet toch eerst het vriendschap verzoek accepteren?
Als die op "Ja" heeft gedrukt moet die toegevoegd worden.
Als die op "Ja" heeft gedrukt moet die toegevoegd worden.
userID - friendID - status
Waarbij heb veld 'status' aangeeft of een vriendschap bevestigd is of nog afwachtend. Eventueel kan je ook'geweigerd'als status gebruiken.
Waarbij heb veld 'status' aangeeft of een vriendschap bevestigd is of nog afwachtend. Eventueel kan je ook'geweigerd'als status gebruiken.
Oke, maar ik snap eigenlijk niet waarom het in een aparte tabel moet?
Want als de gebruiker bijvoorbeeld: piet, klaas wil toevoegen dan moet die toch wel bij de user opgeslagen worden? Anders ziet die niet dat de vrienden bij piet horen.
Ben slecht in uitleggen weet het..
Want als de gebruiker bijvoorbeeld: piet, klaas wil toevoegen dan moet die toch wel bij de user opgeslagen worden? Anders ziet die niet dat de vrienden bij piet horen.
Ben slecht in uitleggen weet het..
Hoe wil je 5 vrienden verzoeken voor Pietje dan in de user-table opslaan?
In 1 field?
En hoe ga je dat dan verwerken als iemand zo'n verzoek (niet) accepteert?
Dan verwijdert die het verzoek uit de field en voegt die hem niet toe als vriend.
Remco van Akker op 04/11/2011 17:25:14:
Dan verwijdert die het verzoek uit de field en voegt die hem niet toe als vriend.
En hoe zie jij die query dan voor je, als er in 1 field meerdere verzoeken staan?
Remco van Akker op 03/11/2011 19:04:01:
Want als de gebruiker bijvoorbeeld: piet, klaas wil toevoegen dan moet die toch wel bij de user opgeslagen worden?
Is er maar 1 Piet of Klaas in het vriendensysteem mogelijk?
Remco van Akker op 03/11/2011 17:58:36:
Alleen ik weet niet hoe ik moet beginnen met de database.
Moet ik een aparte Tabel aanmaken of niet?
En welke fields moeten er allemaal in?
Ik krijg graag antwoord!
Moet ik een aparte Tabel aanmaken of niet?
En welke fields moeten er allemaal in?
Ik krijg graag antwoord!
Grappig. Milo en Aar leggen uit hoe (en waarom) je moet kiezen voor een aparte tabel en jij geeft aan dat je het er niet mee eens bent/niet het nut er van inziet. Als je het (beter) weet, waarom vraag je het dan ;-)
@ Obelix, tja je hebt van die mensen...
Hoe dan ook, kijk op bijvoorbeeld phptuts.nl als je iets niet snapt. Denk dat je daar nog een hoop kunt leren.
Hoe dan ook, kijk op bijvoorbeeld phptuts.nl als je iets niet snapt. Denk dat je daar nog een hoop kunt leren.
Jullie trekken gelijke een conclusie die nergens op slaat.
Ik ben het er mee eens.
Maar ik snap het niet hoe ik dat moet doen of hoe het inelkaar zit.
Misschien eerst het eerste bericht goed door lezen voor dat je antwoord ;)
Ik ben het er mee eens.
Maar ik snap het niet hoe ik dat moet doen of hoe het inelkaar zit.
Misschien eerst het eerste bericht goed door lezen voor dat je antwoord ;)
En waarom slaat die conclusie nergens op? Ben benieuwd...
Meerdere data opslaan in één tabel is gewoon not done en gaat tegen het normaliseren in. Je kan dan vaak niet meer met één simpele querie werken. Mijn advies... Kijk eens maar mijn opzet. Dat is de juiste.
Meerdere data opslaan in één tabel is gewoon not done en gaat tegen het normaliseren in. Je kan dan vaak niet meer met één simpele querie werken. Mijn advies... Kijk eens maar mijn opzet. Dat is de juiste.
een professionele developer normaliseert volgens de regels, Remco mag het best anders doen, elke hobbyist heeft recht als hij geen kaas gegeten heeft van normaliseren, om het bij de user op te slaan:
id
user
wachtwoord
vriend1
vriend2
.
.
.
vriend128 (meer vrienden kan je niet hebben...)
:-0
id
user
wachtwoord
vriend1
vriend2
.
.
.
vriend128 (meer vrienden kan je niet hebben...)
:-0
Gewijzigd op 04/11/2011 22:23:00 door Aad B
En toen konden de gebruikers na 128 geen vrienden meer toevoegen omdat er een lullig limiet aan vast zat.
Oke dus het moet wel in een aparte tabel.
En dan voeg ik fields toe.
Maar vrienden moeten wel gekoppeld zijn aan pietje.
Dus pietje is geregistreerd in users table en zijn vrienden in de friends table.
Maar hoe zorg ik er voor dat zijn vrienden aan pietje wordt gekoppeld?
En dan voeg ik fields toe.
Maar vrienden moeten wel gekoppeld zijn aan pietje.
Dus pietje is geregistreerd in users table en zijn vrienden in de friends table.
Maar hoe zorg ik er voor dat zijn vrienden aan pietje wordt gekoppeld?
Herlees nog eens even de reactie van Milo 03/11/2011 18:07:04
De juiste oplossing werd daar al aangeboden!!
De juiste oplossing werd daar al aangeboden!!
Gewijzigd op 05/11/2011 09:56:16 door Aad B
Wat ik persoonlijk zou doen (zoals eerder gezegd);
1. Zoals Milo S zegt een table voor users (id,username,password,active) etc.
2. Zoals Obelix & Indefix zegt een apparte tabel voor vrienden (user_id,friend_id,status)
Je kijkt of d.m.v. $_SESSION['user_id'] o.i.d. of er vrienden zijn in de tabel vriend, en d.m.v. het veld status kun je controleren of het vriendenschap actief is of niet.
Tis een aanzet.
1. Zoals Milo S zegt een table voor users (id,username,password,active) etc.
2. Zoals Obelix & Indefix zegt een apparte tabel voor vrienden (user_id,friend_id,status)
Je kijkt of d.m.v. $_SESSION['user_id'] o.i.d. of er vrienden zijn in de tabel vriend, en d.m.v. het veld status kun je controleren of het vriendenschap actief is of niet.
Tis een aanzet.
Gewijzigd op 05/11/2011 10:44:45 door Kevin van Leeuwen
@Kevin van Leeuwen
Heel erg bedankt voor je reactie.
Ik begin het nu echt te snappen.
Heel erg bedankt voor je reactie.
Ik begin het nu echt te snappen.
@ Kevin wat jij nu zegt is ook niet 100% juist. Als je dat doet is er geen activatie per vriend. Ik neem aan dat dat de bedoeling is.
Oke ik heb de table gemaakt.
Maar moet de user_id en friend_id op auto increment staan? nee toch?
Maar moet de user_id en friend_id op auto increment staan? nee toch?




