在DB中存储值的多个版本

时间:2012-05-21 08:25:20

标签: sql database database-design

数据库设计问题。

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

说我有产品

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种语言,所以在product表中保留名称和描述是默认语言是有意义的,以避免在系统上只有一种语言时使用JOINs吗?或者它会让我头疼我无法预见?

1 个答案:

答案 0 :(得分:4)

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