Hallo,
_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.
Es gibt immer Anwendungen, die sich mit solchen strengen Regeln nur schlecht bewerkstelligen lassen.
Was macht mann denn bei Daten, die sich nicht so einfach strukturieren lassen?
Ich habe z. B. eine MySQL-Datenbank mit Massenspektren chemischer Verbindungen angelegt, die folgenden Aufbau hat:
id
summenformel
verbindungsname
daten
Unter "daten" sind jeweils die Paare Massenzahl(m),Intensitaet(I) vermerkt, die aber fuer jede Verbindung eine unterschiedliche Anzahl ergeben. Daher ist das Feld vom Typ varchar und enthaelt die Daten in der Form:
m|I|m|I|m|I|m|I|m|I
|m|I|...
Beispiel:
2
C4H8
2-BUTENE
2|12|12|4|13|8|14|20|15|76|...|57|20
Beim Auslesen wird mittels PHP und explode()-Funktion ein Array generiert und daraus der Datensatz extrahiert. Das klappt ganz vorherragend und waere anders kaum so praktikabel realisierbar (vor allem im Hinblick auf die Weiterverarbeitung). In der Tabelle sind die Daten von mehr als 50000 Verbindungen gespeichert ...
Daran schließen sich noch mehr Schritte an wie XML-Generierung und XSLT-Umwandlung der Daten in ein Massenspektrum im SVG-Format (vgl. XML & Web-Services Magazin 2.02).
MfG, Thomas