数据库设计问题。
我需要设计一个具有相同价值的多个版本的商品,例如多语种商店中的购物车产品。
说我有产品
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
吗?或者它会让我头疼我无法预见?
答案 0 :(得分:4)
我会说JOIN获得product_language是无关紧要的。 RDBM非常擅长执行高性能连接:)。我认为使用“默认”名称和描述没有任何好处。如果没有匹配的特定语言可用,您必须在应用程序中同步值和/或进行特殊处理以显示默认名称和描述。