Gute Datenbanktabelle Design für die Speicherung von lokalisierten Versionen von Daten [geschlossen]

StackOverflow https://stackoverflow.com/questions/133313

Frage

Ich versuche, einige Tabellen zu entwerfen einige Daten zu speichern, die später in verschiedenen Sprachen umgewandelt werden muss. Kann jemand für diese einige „Best Practices“ oder Leitlinien?

Danke

War es hilfreich?

Lösung

Angenommen, Sie haben einen Artikel Tabelle, die wie folgt aussieht:

Products
----------
id
price

Products_Translations
----------------------
product_id
locale
name
description

Dann kommen Sie gerade auf product_id = product.id und wo locale = 'en-US'

natürlich dies Auswirkungen auf die Leistung, da Sie jetzt einen Namen und Beschreibung erhalten müssen mitmachen, aber es ermöglicht eine beliebige Anzahl von Schauplätzen später.

Andere Tipps

I beleve, dass mehr Informationen darüber, was Sie wäre hilfreich tun. Können Sie einige Beispiele der Daten geben? Und was meinst du mit dynamisch? Dass es viele Daten eingefügt im Laufe der Zeit und viele Änderungen an den Daten oder dass die Daten sein, muss nur für einen kurzen Zeitraum zur Verfügung stehen.

In der Regel sollten Sie wahrscheinlich mit gemeinsamen nicht lokalisierten Daten und einer untergeordneten Tabelle mit den lokalisierten Daten und dem Sprachenschlüssel an einem übergeordneten suchen werden. Wenn durch dynamische, Sie meinen, dass es sich häufig ändert, können Sie bei Verwendung von Triggern und so etwas wie ein ‚translationRequired‘ Flagge einen Blick haben, Dinge zu markieren, die in Not Übersetzung sind nach einer Änderung vorgenommen wird.

Kann beschreiben Sie die Art der ‚dynamische Daten‘?

Eine Möglichkeit, dies zu realisieren wäre 3 verschiedene Tabellen haben:

  • Sprache Tabelle
    • In dieser Tabelle die Sprache und einen Schlüssel speichern würde:
    [1, English], 
    [2, Spanish]
  • Datendefinitionstabelle
    • Wenn dynamische Daten zuerst in einen Datensatz in dieser Tabelle macht mit und Kennung an die Daten:
      [1, 'Data1'], 
      [2, 'Data2']
  • Data_Language Tabelle
    • Diese Tabelle wird verknüpfen die Sprache, Datendefinition und Übersetzung
      So: [Data_Language, Data_Definition, Language, Translation]
          [1, 1, 1, 'Red']
          [2, 1, 2, 'Rojo']
          [3, 2, 1, 'Green']
          [4, 2, 2, 'Verde']

          etc ...

Wenn die dynamischen Daten eingegeben werden, um den Standard ‚englischen‘ Datensatz erstellen und dann in Ihrer Freizeit übersetzen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top