maximaler Speicherplatz pro Zeile (MySQL)

Von: , Frage gestellt am Fr, 2. Dez 2005

Hallo,

gibt es bei einer MySQL DB eine Speicherplatzbeschränkung innerhalb einer Zeile.

Ich hab eine Tabelle mit id und einem Textfeld. Dieses möchte ich jetzt in weitere Sprachen übersetzen. Kann es bei zu vielen Sprachen oder zu langen Texten zu Problemen kommen?

Thx, Christian

3 Antworten zu dieser Frage

  1. Antwort von nach 7 Stunden 0 hilfreich
    Re: maximaler Speicherplatz pro Zeile (MySQL)

    Hallo Christian,

    man würde nie (niemals nie sagen, trotzdem) verschiedene Sprachversionen in Attribute verpacken. Richtig erstellt man eine Sprachtabelle zur Tabelle. Alle Texte lagert man dann in die Verbindungstabelle aus.

    sprache
    -------
    sprsl PK
    sprache

    tabelle
    -------
    tabsl PK
    attr1
    attr2
    attr3

    sprachezutabelle
    sprsl PK,FK1
    tabsl PK,FK2
    text1
    text2

    Gruß

    Peter [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

    • Antwort von nach 8 Stunden 0 hilfreich
      Re^2: maximaler Speicherplatz pro Zeile (MySQL)

      Hallo Peter,

      erst mal Danke für die Antwort. man würde nie (niemals nie sagen, trotzdem) verschiedene
      Sprachversionen in Attribute verpacken.
      Ok, ... aber wieso eigentlich nicht?

      Als ich das Projekt übernommen habe wurde die Übersetzung schon mit Attributen gelöst, wobei die zu übersetzenden Daten immer nur einzelne Wörter oder kurze Ausdrücke waren.

      BSP Tabelle "Position":

      *id
      de
      en
      es
      fr
      mannschaftsteil
      seite

      1
      Stürmer
      Striker
      xxx
      xxx
      1 (=Angriff)
      5 (=Zentral)


      Ich fand dieses System eigentlch sehr praktisch, weil die Ausgabe der entsprechenden Sprache sehr einfach ist.

      select #url.lg# as position from positionen where id = 1

      Im Quelltext wird dann immer die Variable Position ausgegeben, abhängig von der URL Variable (?lg=de oder ?lg=en).


      Die Texte auf der Seite (keine Daten) wurden direkt im Quelltext per If Anweisungen übersetzt. Das ist mir aber viel zu kompliziert und umständlich, weil ich nicht jedesmal bei einer neuen Sprache die Dateien aufmachen und die Texte übersetzen will. Daher möchte ich das mit der DB machen.

      Das es bei langen Texten mit den Attributen nciht optimal ist war mir schon klar. Bin ja auch am überlegen wie ichs umsetze. Der Vorteil bei Attributen wäre allerdings, dass ich das bisherige Übersetzungs-Tool verwenden kann und hier nur den Namen der Tabelle ändern muss.

      Gruß, Christian

      • Antwort von nach 23 Stunden 0 hilfreich
        Re^3: maximaler Speicherplatz pro Zeile (MySQL)

        Hallo Peter,

        erst mal Danke für die Antwort. man würde nie (niemals nie sagen, trotzdem) verschiedene
        Sprachversionen in Attribute verpacken.
        Ok, ... aber wieso eigentlich nicht?
        Hallo Christian,

        mit der Zeit wird die Anzahl der Sprachen und die Anzahl der Textfelder steigen. Die Spaltenanzahl steigt also mit #Zeile*#Textspalten. Das wird irgendwann unübersichtlich. Wenn Du eine Sprachenübersicht erstellen willst wird das kompliziert.

        Auf einer Speicherseite steht immer die volle Länge einer Zeile. Also je mehr Sprachen desto mehr unnötige Daten. Idealerweise sollten die Daten nach Sprachen geclustert sein.

        Solange Du damit keine Probleme hast ist auch keine Änderung nötig. Wenns dann zu kompliziert wird - Abfrage oder Darstellung - oder Performanceprobleme auftreten, weisst Du ja wies geht.



        Gruß

        Peter

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!