4

一个数据库设计问题。

我需要设计具有相同价值的多个版本的项目,例如多语言商店中的购物车产品。

说我有一个产品

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合理?product大多数商店只有一种语言,那么在表中保留默认语言的名称和描述以避免JOINs系统上只有一种语言时是否有意义?或者它会给我带来我无法预见的头痛?

4

1 回答 1

4

我会说获得 product_language 的 JOIN 是无关紧要的。RDBM 非常擅长执行高性能连接 :)。我认为使用“默认”名称和描述没有任何好处。如果没有匹配的特定语言可用,您必须同步值和/或在应用程序中进行特殊处理以显示默认名称和描述。

于 2012-05-21T08:32:02.753 回答