2011-12-24 24 views
3

私は多言語のWebサイトで作業しています。例えばMySQLデータベースに翻訳を保存する最良の方法

は、DB 1 LANG用のテーブルpagesは、私が2つの翻訳についてのアイデア持って、今では

enter image description here

次のようになります。デフォルトの言語のすべてのテーブルを使用するには

  1. を - 英語2番目のテーブルを作成します - translations必要な場合にのみ使用してください。

  2. または、title_ru、title_en ...のような列を既存の表に追加します。

どちらが高速で効率的な方法ですか?そしてあなたのアイデアを説明してください(なぜあなたはそのように思うのですか)

答えて

4

あなたのソリューションを選択しません。

言語ごとに新しいテーブルを作成するのは最適ではありません。なぜなら、どの言語が選択されているかに基づいて各クエリを変更する必要があるからです。また、新しい言語を追加するというかなり簡単な作業は、新しいテーブルスキーマの追加とコードベース全体の更新を意味します。

同様に、言語ごとに新しい列を追加するのと同じ問題があります。

PKの一部として言語IDを持つ辞書テーブルだけではないのはなぜですか。 現在の言語ID(1 =英語、2 =ロシア語など)に基づいてテキストを選択してください

実行時に別の言語に切り替えるには、関連するすべての言語IDを1から2に設定してくださいすべてのクエリは引き続き機能します。

+0

よろしくお願いします。しかし、単語の代わりに 'id'(' dictionary'テーブルに基づいて)を 'name'と' title'フィールドに挿入したいのですか?しかし、データベーステーブル(人的要因)を読むのは難しいでしょう –

+0

辞書検索を導入する方法はいろいろありますが、もっとも簡単な考え方は言語IDをあなたの 'pages'テーブルに追加し、 。 – carpii

関連する問題