Hallo,
ich weiß nicht genau, wie ich meine Daten in der DB strukturieren soll.
Es geht um einen Haufen Datensätze, die alle schon in einer Tabelle 'all_data' stehen.
id | besitzer | typ | groesse | ...
-----------------------------------
Diese sollen nun von verschiedenen Usern zu individuellen Listen zusammengefasst werden können. Jeder User hat also eine variable Anzahl an Listen.
So eine Liste besteht dann also eigentlich nur aus den IDs der Datensätze.
Da nun aber sowohl die Anzahl der User als auch die Anzahl der Listen variabel sind, frage ich mich, wie das am besten strukturiert werden kann.
Z.B. habe ich mir überlegt, dass jeder User eine eigene Tabelle bekommt, etwa '<username>_lists' und in dieser Tabelle gibt es zwei Spalten
id | Listen
-----------
Die id ist die ID des Datensatzes, die in 'all_data' verwendet wird und in 'Listen' stehen die Namen aller Listen dieses Users, zu der dieser Datensatz gehören soll.
Dann müsste ich für eine bestimmte Liste immer ein "WHERE Listen LIKE '%<Listenname>%'" ausführen.
Nun frage ich mich, ob das vielleicht unpraktisch ist, da ich auch Kommata in Listennamen verbieten oder gesondert behandeln müsste.
Eine weitere Idee wäre, dass ich statt dem Feld 'Listen' für jede Liste des Users eine Spalte anlege
id | Liste1 | Liste2 | ...
---------------------------
und als Wert 0 oder 1 eintrage. Dann wären die Abfragen bestimmt einiges schneller, aber die Anzahl der Spalten wäre dann variabel.
Auch würde ich gerne möglichst einfach die Namen aller Listen eines Users bestimmen können und das ist bei beiden Varianten zwar machbar, aber nicht unbedingt schön.
Ich hoffe, ihr habt bessere Ideen oder Vorschläge. :-)
Danke schonmal und Grüße
Chris