Erik: (MySQL) Mehre Werte in eine Spalte

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

  1. 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

    1. 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

      1. 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

        1. 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

          1. 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

            1. 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

              1. 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