ich versuche gerade eine einfache kleine community auf Grundlage von php und mysql zu schreiben. Nun will ich eine Freundesliste realisieren, bin mir aber nicht wirklich sicher, wie ich das am besten anstelle.
Meine Idee: alle Freunde einer Person (bzw. deren id), speichere ich in EINEM Feld, trenne sie durch Komma und löse sie bei Bedarf jeweils mit der explode-Funktion auf.
Ja, das wird gerne gemacht, ist aber mangelhaft. Besser wäre eine zweite Tabelle "Beziehungen" (können ja auch Blacklists sein, die zusammen mit den Whitelists in der genannten Tabelle verwaltet werden), die die IDs des Listenden und des Gelisteten speichert. Auf die Kombination der beiden IDs zusammen mit dem Beziehungtyp (black, white, etc.) könntest Du einen Index setzen, der verhindert, das ein und dieselbe Information (bspw. bedingt durch einen Programmfehler) in der datenhaltung landet.