Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Datenbankdesign mit Internationalisierung

Ich habe dies am häufigsten mit zwei Tabellen gesehen, membership und membership_ml , wobei eine die Basiswerte und die ml-Tabelle die lokalisierten Zeichenfolgen speichert. Dies ähnelt Ihrer zweiten Option. Die meisten Systeme, die ich so sehe, sind so gemacht, weil sie nicht von Anfang an auf Internationalisierung ausgelegt waren, also wurden die zusätzlichen _ml-Tabellen später "angehängt".

Was meiner Meinung nach eine bessere Option ist, ähnelt Ihrer ersten Option, ist aber ein wenig anders. Sie hätten eine zentrale Tabelle zum Speichern aller Übersetzungen, aber anstatt den Tabellennamen und den Feldnamen dort einzufügen, würden Sie Tokens und eine zentrale "Inhalts"-Tabelle verwenden, um alle Übersetzungen zu speichern. Auf diese Weise können Sie auch eine Art RI zwischen den Tokens in der Basistabelle und den Übersetzungen in der Inhaltstabelle erzwingen, wenn Sie möchten.

Ich habe tatsächlich eine Frage gestellt über genau diese Sache vor einer Weile, also können Sie sich das für weitere Informationen ansehen (anstatt die Schemabeispiele hier neu einzufügen).