phpbar.de logo

Mailinglisten-Archive

[php] [OT] Datenbankdesign mit Mehrsprachigkeit

[php] [OT] Datenbankdesign mit Mehrsprachigkeit

Ralf Eggert r.eggert at travello.de
Don Nov 23 21:56:19 CET 2006


Hallo Liste,

ich weiß, dass die Frage off-topic ist. Da hier aber viele gestandene
Webentwickler mitlesen, hoffe ich, dass mir jemand helfen kann.

Ich habe eine Datenbanktabelle "Mensch". Neben Feldern wie Name, Größe
und Gewicht, in denen Werte frei eingeben werden können, gibt es auch
Felder wie Augenfarbe, Haarfarbe und Familienstand, welche nur bestimmte
Vorgabewerte aufnehmen dürfen. Diese Vorgabewerte sollen mehrsprachig
verwaltet werden.

Wie lege ich nun diese Vorgabewerte am besten an? Als Beispiel nehme ich
mal Familienstand.

1. Ich verwende ein ENUM Feld, in denen alle möglichen Werte in einer
   Sprache vorgegeben werden. Die Übersetzungen werden dann aus einer
   anderen Quelle gelesen.

2. Ich erstelle eine eigene Tabelle "Familienstand". Der
   Primärschlüssel besteht aus einer eindeutigen Id, dem
   Sprachschlüssel und der Bezeichnung. Die ID wird als Fremdschlüssel
   in Tabelle "Mensch" verwendet.

3. Ich erstelle eine eigene Tabelle "Familienstand" mit einem
   Primärschlüssel und einem Bezeichnerfeld, das ein serialisiertes
   Array bestehend aus Sprachschlüssel und Bezeichnung enthält.

4. Ich erstelle eine XML Datei, welches die Daten für den Familienstand
   enthalten. Jede Entität in der XML Datei enthält die Bezeichnungen
   in den Sprachen. In Tabelle "Mensch" gibt es ein Feld für den
   "Familienstand", mit dem Schlüssel aus der XML Datei.

Verwendet habe ich in der Vergangenheit bereits 1. und 2. Jetzt überlege
ich, ob 3. und/oder 4. vielleicht besser geeignet sind.

Wie setzt Ihr solche Daten in euren Projekten um?

Gruß,

Ralf

php::bar PHP Wiki   -   Listenarchive