2012-05-21 33 views
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明智与否?大多数商店只有一种语言,因此在product表中保留默认语言的名称和描述是有意义的,以避免在系统上只有一种语言时使用JOINs?或者它会让我头痛,我无法预见?

回答

4

我会说加入以获得product_language将是无足轻重的。 RDBM非常擅长执行性能连接:)。我没有看到使用“默认”名称和描述的好处。如果没有匹配的特定语言可用,您必须在应用程序中同步值和/或进行特殊处理才能显示默认名称和说明。

相关问题