2012-03-15 10 views
0

私は2つのカラムID | Materialを持つテーブルを持っていて、材料の列に英語の翻訳を追加する必要があります。私がユニークなIDを持っていなかったなら、私はこの答えを使うことができると思います:https://stackoverflow.com/a/219871/536610ユニークなIDを使用して既存のテーブルをローカライズ

しかし、それは私が知る限りユニークなIDでは動作しません。 EngMaterialという名前の新しい列を追加してそこに英語の翻訳を追加するのが最適な解決策ですか、それとも.NETのローカライゼーションでこれをより良い方法で解決することは可能でしょうか?

+0

。 – QQping

答えて

1

完全にデータベース内のソリューションは、別のテーブルを追加することです。言語ごとの列を追加することは、最善の方法では(貧弱な)一時的な解決策です。規模が大きくなく、動的SQLで列を選択する必要があります(言語コードが利用可能な場合はエラーが発生する可能性がありますが、 )。

既存のテーブルをそのまま使用してください。参照整合性のための優れた主キー・テーブルを作成します。また、適切な言語が見つからない場合は、デフォルトの簡単な格納が可能です。そして、このように別のテーブルを追加します。あなたはあなたのソリューションにApp_GlobalResourcesフォルダ内のリソースファイルを作成し、ちょうどあなたのテーブル内のローカライズされた文字列のキーを保存することができます

Material_Localizations 
======================== 
materialId -- fk reference to Material.id 
languageId -- fk reference to Language.id 
regionId -- optional - used to differentiate where the particular language is 
      -- being spoken: some places use different spellings or whole words 
materialDescription -- varchar, localized text 

primary (unique) key is <materialId, languageId, regionId> 
関連する問題