2012-05-21 65 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非常擅長執行性能連接:)。我沒有看到使用「默認」名稱和描述的好處。如果沒有匹配的特定語言可用,您必須在應用程序中同步值和/或進行特殊處理才能顯示默認名稱和說明。

相關問題