0

ユーザーが製品を手動で挿入できるように、cakephp を使用して PHP でサイトを作成したいと考えています。問題は多言語の場合です。これは、世界中のユーザーが自分のサイトにアクセスできるためです。たとえば、イタリア語の「apple」という製品は「mela」です。私は多くのデータを持つことができると考えてください! それから私はデータベースのためのいくつかの解決策を持っています:

    • ID を持つテーブル製品を作成します
    • 製品言語の ID とテキスト (例: リンゴ) を持つテーブル product_aliases を作成します。このモードでは、ユーザーは「リンゴ」に入り、広告を翻訳できます。新しい行を product_aliases に挿入します。同じ ID の製品は言語が異なり、言語も異なります。テキストが同じ製品
  1. 5 つの言語を定義し、より多くのフィールド (title_en、title_it、title_es...) を持つテーブルを作成します 翻訳は同じレコードにあります テーブルは 1 つだけですが、言語は制限されています

    • ID を持つテーブル製品を作成します
    • たとえば、必要なすべての言語のテーブルを作成します。prducts_en、products_it には、製品への同じ外部キーを使用してデータを格納できますが、言語から分割して高速なクエリを作成できます。

その他の解決法も承ります!! 大規模な多言語データベースを扱うことはありませんが、データベースに最適なソリューションを教えてくれます

4

1 に答える 1

0

最初のものは、一般的に正しい解決策です。

これは、多くのエンタープライズ アプリケーションで使用されます。多言語ではない情報 (例: 製品の単価) を識別するための id フィールドを持つテーブルと、製品/言語のすべての組み合わせの行を持つテーブルです。

2 つ目は、すべてのデータベース正規化ルールに反します。

3 番目のものは 2 番目のものの別の派生物であり、翻訳されたラベル テーブルの言語列にインデックスを使用する場合、パフォーマンスの点で大きな不利になることはありません。

あなたが必要なら、私はよりよく説明します!

于 2012-06-16T12:54:47.447 に答える