Hallihallo,
_eine_ Spalte ist für _einen_ Wert gedacht. Zwar gibt es Datentypen, die dies relativieren (SET, ENUM), die sind aber nicht für tausend verschiedene mögliche Werte gedacht.
Was Du möchtest, ist eine zweite Tabelle anlegen und mit dieser eine 1:n-Beziehung aufbauen.
Im Prinzip ja, aber ... :-)
Das ist natürlich schöne Theorie. Aber man muss sich nicht unbedingt zum Sklaven der totalen Normalisierung machen, da es in MySQL ja zum Glück VarChars gibt. Die kann man hier bestens als varianten Datentyp verwenden.
Wenn es keine Notwendigkeit gibt, mit den Werten schon in der Datenbank zu rechnen und man sowieso immer alle, die zu einem Datensatz gehören, gemeinsam benötigt, dann ist eine Speicherung als varianter Datentyp druchaus billiger.
Die Werte kann man z.B. aus einem Array mit Hilfe von Implode() in einen String schreiben und dann abspeichern. Mit explode() kann man dann nach dem Holen aus der Datenbank wieder ein Array daraus machen. Wenn man ganze Variablenstrukturen in einem Block abspeichern will, eigenen sich auch die Funktionen serialize() und unserialize().
Wenn man natürlich mit diesen Werten rechnen will, den größten oder den kleinsten suchen muss, oder irgendwelche Filter setzen will, dann macht eine zweite Tabelle sicher Sinn.
Liebe Grüße aus http://www.braunschweig.de
Tom
Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.