Maximaler Speicherplatz pro Zeile (MySQL)

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

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]

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

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