4

DB設計の質問。

多言語ストアの買い物かご商品のように、同じ価値の複数のバージョンを持つアイテムをデザインする必要があります。

私が製品を持っていると言う

CREATE TABLE product 
 id INT,
 name VARCHAR(64),
 description SMALLTEXT,
 whatever BOOL,
 another INT;

と翻訳テーブル

CREATE TABLE product_language
 product_id INT,
 language_id INT,
 name VARCHAR(64),
 descripton SMALLTEXT;

今私の質問は...テーブルはproduct賢明かどうかですか?ほとんどのショップは1言語のみですが、システムに1つの言語しかない場合productを避けるために、名前と説明をデフォルトの言語でテーブルに保持するのは理にかなっていますか?JOINsそれとも、私が予測できない頭痛を私に与えるでしょうか?

4

1 に答える 1

4

product_languageを取得するためのJOINは重要ではないと思います。RDBMは、パフォーマンスの高い結合の実行に非常に優れています:)。「デフォルト」の名前と説明を使用してもメリットはありません。一致する言語固有のものが利用できない場合は、値を同期するか、アプリケーションで特別な処理を行って、デフォルトの名前と説明を表示する必要があります。

于 2012-05-21T08:32:02.753 に答える