Vrienden systeem
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!
user
- id
- username
- password
etc etc.
friend
- user_id
- friend_id
Voorbeeldje...
Als die op "Ja" heeft gedrukt moet die toegevoegd worden.
Waarbij heb veld 'status' aangeeft of een vriendschap bevestigd is of nog afwachtend. Eventueel kan je ook'geweigerd'als status gebruiken.
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 ;-)
Hoe dan ook, kijk op bijvoorbeeld phptuts.nl als je iets niet snapt. Denk dat je daar nog een hoop kunt leren.
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 ;)
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.
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.
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?
De juiste oplossing werd daar al aangeboden!!
Gewijzigd op 05/11/2011 09:56:16 door Aad B
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
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.
Maar moet de user_id en friend_id op auto increment staan? nee toch?