(MySQL) Mehre Werte in eine Spalte
Erik
- datenbank
0 André Laugks0 Erik0 André Laugks0 Erik0 Klaus Mock0 Erik
Hi,
ist es sinnvoll mehrere kleinere Werte in ein größere Spalte zu schreiben (z.B. durch Zeilenumbrüche getrennt), wenn diese Werte nicht einzeln abgerufen werden können müssen, anstatt sie jeweils in eine eigene Spalte zu schreiben?
VG
Erik
Hallo!
ist es sinnvoll mehrere kleinere Werte in ein größere Spalte zu schreiben (z.B. durch Zeilenumbrüche getrennt), wenn diese Werte nicht einzeln abgerufen werden können müssen, anstatt sie jeweils in eine eigene Spalte zu schreiben?
Nicht sinnvoll, schon gar nicht die Werte "horizontal" abzulegen.
Nehmen wir mal an, es gehören die Zahlen 1, 3, 5, 7, 9 und 2, 4, 6 zusammen.
S=Spalte
Lege die werte NICHT so ab:
id S1 S2 S3 S4 S5
1 1 3 5 7 9
2 2 4 6
Lege die Werte so ab unter Verwendung von zwei Tabellen.
z.B.
// tabelle_uebersicht
id was
1 ungerade
2 gerade
// tabelle_werte
id zahl
1 1
1 3
1 5
1 7
1 9
2 2
2 4
2 5
Das ist eine 1:n Relation.
MfG, André Laugks
Hi André,
ist es sinnvoll mehrere kleinere Werte in ein größere Spalte zu schreiben (z.B. durch Zeilenumbrüche getrennt), wenn diese Werte nicht einzeln abgerufen werden können müssen, anstatt sie jeweils in eine eigene Spalte zu schreiben?
Ich glaube ich habe mich ein bisschen missverständlich ausgedrückt. Beispiel:
ich habe immer folgende 5 Werte
Wert1 Wert2 langer Wert3 Wert4 langer Wert5 (und hierbei wollte ich beispielsweise Wert1, 2 und 4 zusammen in ein Feld packen)
Da kann es doch nicht sinnvoll sein alles über einen Kamm zu scheren und die kurzen Werte 1,2 und 4 genauso in ein TEXT-Feld zu stecken wie die langen Werte 4 und 5, oder?
Nicht sinnvoll, schon gar nicht die Werte "horizontal" abzulegen.
Warum denn nicht?
Nehmen wir mal an, es gehören die Zahlen 1, 3, 5, 7, 9 und 2, 4, 6 zusammen.
S=Spalte
Lege die werte NICHT so ab:
id S1 S2 S3 S4 S5
1 1 3 5 7 9
2 2 4 6
Auch dann nicht wenn man immer gleich viele Werte hat?
VG
Erik
Hallo!
Ich glaube ich habe mich ein bisschen missverständlich ausgedrückt. Beispiel:
ich habe immer folgende 5 Werte
Wert1 Wert2 langer Wert3 Wert4 langer Wert5 (und hierbei wollte ich beispielsweise Wert1, 2 und 4 zusammen in ein Feld packen)
Da kann es doch nicht sinnvoll sein alles über einen Kamm zu scheren und die kurzen Werte 1,2 und 4 genauso in ein TEXT-Feld zu stecken wie die langen Werte 4 und 5, oder?
Ok, ich dachte an ein und den selben Daten-Typ. Wenn Du natürlich verschiedene Datentypen(Text-Länge, Integer etc.) hast, sieht das natürlich ganz anders aus und wenn die Anzahl der Werte immer gleich ist. Auch wenn einer fehlt ist es ok. Es muß nur eine Mindestanzahl sein. Als Beispiel kann man hier Personendaten nennen.
Ich würde für jeden Wert eine Spalte anlegen. Das macht das Arbeiten um einiges angenehmer. Die Fehlerquote ist auch nicht so hoch, als wenn Du mehrere Werte in ein Datenfeld einträgst.
Nicht sinnvoll, schon gar nicht die Werte "horizontal" abzulegen.
Warum denn nicht?
siehe oben.
S=Spalte
Lege die werte NICHT so ab:
id S1 S2 S3 S4 S5
1 1 3 5 7 9
2 2 4 6
Auch dann nicht wenn man immer gleich viele Werte hat?
siehe oben
MfG, André Laugks
Hi,
Ich würde für jeden Wert eine Spalte anlegen. Das macht das Arbeiten um einiges angenehmer. Die Fehlerquote ist auch nicht so hoch, als wenn Du mehrere Werte in ein Datenfeld einträgst.
Da ich das ganze per Skript mache, denke ich, ist das kein Problem. Aber bringt es denn irgendwelche Vorteile (Geschwindigkeit, Speicherplatz...)?
VG
Erik
Hallo,
Ich würde für jeden Wert eine Spalte anlegen. Das macht das Arbeiten um einiges angenehmer. Die Fehlerquote ist auch nicht so hoch, als wenn Du mehrere Werte in ein Datenfeld einträgst.
Da ich das ganze per Skript mache, denke ich, ist das kein Problem. Aber bringt es denn irgendwelche Vorteile (Geschwindigkeit, Speicherplatz...)?
Ich bezweifle stark, ob es Geschwindigkeitsvorteile bringen würde. Scriptsprachen können prinzipbedingt nicht so schnell sein, wie optimierter compilierter Code.
Und Speicherplatz ist heutzutage nur noch in PDAs ein wirkliches Problem.
Solche Tricksereien rächen sich irgendwann immer, glaub mir.
Also:
Mach es nicht, es zahlt sich nicht aus.
Grüße
Klaus
Hi,
Ich würde für jeden Wert eine Spalte anlegen. Das macht das Arbeiten um einiges angenehmer. Die Fehlerquote ist auch nicht so hoch, als wenn Du mehrere Werte in ein Datenfeld einträgst.
Da ich das ganze per Skript mache, denke ich, ist das kein Problem. Aber bringt es denn irgendwelche Vorteile (Geschwindigkeit, Speicherplatz...)?
Ich bezweifle stark, ob es Geschwindigkeitsvorteile bringen würde. Scriptsprachen können prinzipbedingt nicht so schnell sein, wie optimierter compilierter Code.
Und Speicherplatz ist heutzutage nur noch in PDAs ein wirkliches Problem.
Naja, die Datenbank wird vermutlich ziemlich groß werden, und ich dachte halt, dass eine Tabelle mit einer geringeren Zeilenzahl schenller zu laden ist.
VG
Erik
Hallo,
Naja, die Datenbank wird vermutlich ziemlich groß werden, und ich dachte halt, dass eine Tabelle mit einer geringeren Zeilenzahl schenller zu laden ist.
Gerade dann solltest Du auf ein sauberes Design achten. Vielleicht hast Du ja die Möglichkeit, eine halbwegs vernünftige Testumgebung zu erzeugen, in der Du Perfromancetests machen kannst.
Grüße
Klaus