Hallo,
wir haben eine Applikation mit Postgresql DB im Hintergrund. Nun müssen wir die gesamte Applikation auf Mehrsprachigkeit umstellen.
Dazu muss nun ein Grossteil der Felder in der Datenbank mehrsprachig abgebildet werden.
(Bezeichnungen etc)
Da unsere Datenbank bereits etwa 150 Tabellen umfasst, wollen wir nicht jedes zu übersetzende Feld in eine Zwischentabelle auslagern da die Datenbank dann schnell unübersichtlich wird.
Jetzt hatten wir die Idee die Felder die Mehrsprachig abgebildet werden sollen in der Datenbank als Arrays abzuspeichern und für jede Sprache eine eigene Dimension anzulegen.
in etwa so:
Spalte Bezeichnung als varchar(200)
index 1 = Deutsch
index 2 = Englisch
Da ich bis jetzt noch nicht wirklich viel Erfahrung mit Arrays in Datenbanken habe wollte ich nachfragen ob so etwas in der Art möglich/sinnvoll ist.
Mit welchen Problemen werde ich hier rechnen müssen bezüglich Sprachenübergreifende Suche, Updates der Felder, hinzufügen neuer Sprachen, ...?
Danke im Vorraus
oesi
Ähm, ihr wollt die *Datenbank* mehrsprachig gestalten?
Oder die Anwendung, die mit der Datenbank arbeitet?
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Die Anwendung natürlich und den dazugehörigen content der in der Datenbank steht
Dann leg dir 1:n Tabellen an, die den Inhalt zur jeweiligen Sprache referenzieren.
Alles andere artet irgendwann in Chaos aus.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Da hast du vermutlich recht.
Danke für deine Antwort
Ich habe auch gerade festgestellt, das PHP nicht wirklich mit den Postgresql Arrays umgehen kann und ich mir die Daten dann wieder selbst parsen müsste.
Dann werde ich das wohl auf einzelne Tabellen aufteilen müssen.
Das blöde ist nur, dass die Anzahl der Joins mit den vielen Zwischentabellen wieder ansteigt und die Abfragen verlangsamt...
Mit einer 1:n Tabelle kannst du auch pauschal am Stück alle Übersetzungen für eine Sprache auslesen.
Die kannst du dann in deiner Anwendung einlesen und weiter verarbeiten.
Wenn du das in Arrays ablegst, musst du erst wieder umständlich die Arrays parsen.
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen