11
多言語データベースのスキーマ
多言語ソフトウェアを開発しています。アプリケーションコードに関する限り、ローカライズ性は問題ではありません。言語固有のリソースを使用し、それらとうまく機能するあらゆる種類のツールを使用できます。 しかし、多言語データベーススキーマを定義するための最良のアプローチは何ですか?たくさんのテーブル(100以上)があり、各テーブルにローカライズ可能な複数の列があるとします(nvarchar列のほとんどはローカライズ可能でなければなりません)。たとえば、テーブルの1つに製品情報が含まれている場合があります。 CREATE TABLE T_PRODUCT ( NAME NVARCHAR(50), DESCRIPTION NTEXT, PRICE NUMBER(18, 2) ) NAME列とDESCRIPTION列で多言語テキストをサポートするための3つのアプローチを考えることができます。 言語ごとに個別の列 システムに新しい言語を追加するときは、次のように、翻訳されたテキストを格納する追加の列を作成する必要があります。 CREATE TABLE T_PRODUCT ( NAME_EN NVARCHAR(50), NAME_DE NVARCHAR(50), NAME_SP NVARCHAR(50), DESCRIPTION_EN NTEXT, DESCRIPTION_DE NTEXT, DESCRIPTION_SP NTEXT, PRICE NUMBER(18,2) ) 各言語の列を含む翻訳テーブル 翻訳されたテキストを保存する代わりに、翻訳テーブルへの外部キーのみが保存されます。translationsテーブルには、各言語の列が含まれています。 CREATE TABLE T_PRODUCT ( NAME_FK int, DESCRIPTION_FK int, PRICE NUMBER(18, 2) ) …