2012-07-25 9 views
6

可能性の重複:
Schema for a multilanguage database多言語データの保存方法は?

私は多言語データを持っている非常に忙しいWebアプリケーションを構築しています。これらのデータはすべてMySQLデータベースに保存されます。このデータを保存する最良の方法は何ですか? (title_en、title_frなど)言語ごとのテーブルで

  1. 別々の列の翻訳のために(pages_en、pages_frなど)言語ごと
  2. 別々のテーブル
  3. クロステーブル(有する:私はしかし、いくつかの推測を持っていますページテーブル内のidで、このリンクIDをtrans_en、trans_frのような複数のカラムがある変換テーブルに持つ)
  4. 言語ごとに1つのテーブル(例:pages_en、pages_fr )
  5. 他?私はサイトの多言語をしなければならなかった場合は、次のよう
+0

新しい言語を追加して新しいテーブルを作成すると、すべての非多言語列をこの新しいテーブルにコピーする必要があるので、2番目の解決策に問題があります。しかし、テーブルのサイズがより小さいため、おそらく最初の解決策より速いでしょう。 –

+0

第3の解決策は、プライマリテーブルを非常にきれいにしますが、手動メンテナンスを行うのは難しく、変換テーブルは非常に大きなものになります –

+0

2番目のソリューションは新しい言語(列を追加するだけ)に展開するのは簡単ですが、展開してください)...ちょっとここに... ... –

答えて

1

は、その後、私は、DBを設計します:

enter image description here

アプリケーション内のすべてのページには、複数の言語を持つことができます。ページの言語を取得するには、言語IDをフィルタリングするだけです。