Hallo allerseits,
ein Problem, das bei mir immer wieder auftaucht, ist, dass ich fuer ein Attribut nur bestimmte Werte vorsehe, also den Wertebereich begrenze.
Und ich frage mich jedesmal, wie ich das dann mit MySQL speichern soll :-/
BEISPIEL 1:
Nicht erweiterbarer Wertebereich, also keine
weiteren Werte denkbar.
gottheit.beherrschtesElement ENUM('Feuer', 'Wasser', 'Erde', 'Luft') NOT NULL
BEISPIEL 2:
weitere Werte könnten irgendwann dazu kommen,
wären dann aber auch wiederum fest vorgegeben:
gottheit.farbe ENUM('abricot', 'rosa') NOT NULL
So wie ich das sehe, habe ich in beiden Fällen folgende Möglichkeiten:
-
so wie im Beispiel einfach als ENUM-Attribut speichern.
Bei Bedarf (2. Beispiel) die Definition der Spalte erweitern. -
als text-Wert speichern, also ohne wirklich festen Wertebereich
Das hätte wohl Vorteile in Sachen Portierbarkeit, aber eigentlich
will ich ja bei MySQL bleiben. -
auslagern in eine extra Tabelle, z.B.:
farbe.id int NOT NULL
farbe.name ENUM('mausgrau', 'aschfahl') NOT NULL
um dann in der Tabelle "gottheit" mittels Fremdschlüssel zu verweisen.
Dann wäre auch sowas denkbar:
farbe.erklaerung text NOT NULL
Ein Freund von mir favorisiert meistens Variante 3, darum will ich das jetzt mal hinterfragen. Wie seht ihr das, was sind die Vor- und Nachteile?
Danke für eure Hilfe,
Eddie
Old men and far travforelers may lie with authority.