2012-07-25 16 views
6

Mögliche Duplizieren:
Schema for a multilanguage databaseWie können mehrsprachige Daten gespeichert werden?

Ich baue eine sehr beschäftigt Web-Anwendung, die mehrsprachige Daten hat. All diese Daten werden in einer MySQL-Datenbank gespeichert. Was ist der beste Weg, um diese Daten zu speichern? Ich habe ein paar Vermutungen aber:

  1. separate Spalten in der Tabelle für jede Sprache (wie title_en, title_fr)
  2. getrennte Tabellen für jede Sprache (wie pages_en, pages_fr)
  3. Kreuztisch für Übersetzungen (mit eine ID in der Seitentabelle und mit dieser verknüpften ID in einer Übersetzungstabelle mit mehreren Spalten wie trans_en, trans_fr)
  4. mit nicht mehrsprachigen Daten in einer Tabelle für Beispielseiten und Übersetzungen in einer Tabelle pro Sprache (pages_en, pages_fr)
  5. andere?
+0

Okay, ich sehe ein Problem mit der zweiten Lösung, denn wenn Sie eine neue Sprache hinzufügen und eine neue Tabelle erstellen, müssen alle nicht mehrsprachigen Spalten in diese neue Tabelle kopiert werden. Aber es ist wahrscheinlich schneller als die erste Lösung, weil die Tabelle kleiner ist. –

+0

Dritte Lösung macht Primärtabellen sehr sauber, aber es ist schwer, manuelle Wartung zu tun und die Übersetzungstabelle wird Killer groß –

+0

Zweite Lösung ist einfach zu neuen Sprachen zu erweitern (nur Spalten hinzufügen), kann aber immer noch sehr groß, wenn die Sprachen drastisch erweitern) ... ein bisschen hier stecken geblieben ... –

Antwort

1

Wenn ich eine Website mehrsprachig machen musste, dann würde ich die DB-Design wie folgt:

enter image description here

Jede Seite in der Anwendung kann mehrere Sprachen haben. Sie müssen nur nach der Sprach-ID filtern, um die gewünschte Sprache für die Seite zu erhalten.

Verwandte Themen