1. ホーム
  2. sql

[解決済み】多言語データベース設計のベストプラクティスは何ですか?[クローズド]

2022-04-11 08:16:30

質問

多言語対応データベースを構築したいのですが、どのような方法がありますか?各テーブルにローカライズされたテーブルを作成することは、設計とクエリを複雑にしている、他のケースでは、各言語のカラムを追加することは簡単ですが、動的ではありません、エンタープライズアプリケーションに最適な選択を理解するために私を助けてください

どのように解決するのですか?

私たちが行うことは、各多言語オブジェクトに対して2つのテーブルを作成することです。

例えば、最初のテーブルには言語のニュートラルデータ(主キーなど)のみを格納し、2番目のテーブルには言語ごとに1レコード、ローカライズデータとその言語のISOコードを格納する。

場合によっては、DefaultLanguageフィールドを追加し、指定した言語のローカライズデータがない場合に、その言語にフォールバックできるようにします。

Table "Product":
----------------
ID                 : int
<any other language-neutral fields>


Table "ProductTranslations"
---------------------------
ID                 : int      (foreign key referencing the Product)
Language           : varchar  (e.g. "en-US", "de-CH")
IsDefault          : bit
ProductDescription : nvarchar
<any other localized data>

この方法では、必要なだけ多くの言語を扱うことができます(新しい言語ごとにフィールドを追加する必要はありません)。


更新情報(2014-12-14):ご覧ください。 この回答 アプリケーションに多言語データを読み込むための実装に関する追加情報は、こちらをご覧ください。