2011-08-21 169 views
1

我們正在製作一個網站,我們有產品及其規格。產品的數據存儲在產品表中。數據庫設計問題?

我們不確定如何存儲規格。由於冰箱的規格與微波爐或洗衣機完全不同。

有人可以建議我可以創建其他相關表來存儲規格?

+0

你根據規範的思維過濾? – Baz1nga

+0

是的,情況也是如此。但在這個時候,只是想找出正確的信息存儲方式。 –

回答

0

像我問正確的實現取決於你如何使用數據。如果你不想查詢你的規格,你不想要很多開銷處理,那麼你可以轉儲規格作爲blob列的一部分產品表,但這意味着你不能對數據庫端的數據做任何事情,並且必須在數據讀入你的Web服務器後採取行動,或者可能使用某種類型的全文搜索引擎,如這裏討論的那種。 http://msdn.microsoft.com/en-us/library/ms345119(v=sql.90).aspx

否則,您可以將其存儲爲鍵值對,並將外鍵映射到每個行,您甚至可以在鍵上進行過濾並加入產品表。

在這種情況下,你的表stucture將

Specifications: 
Product_id, 
Speecification_Name, 
Specification_value (nvarchar), 
Specification_type(string) // identifies the datatype of the value.. not sure how useful this is at this moment but smthing that you can consider while filtering 
+0

好,那太好了 –

1

這樣做的「正確」方式實際上取決於您需要如何處理數據。例如,假設微波爐和洗衣機都具有「瓦數」作爲規格。你有沒有想過你需要通過功率範圍查詢所有設備?如果是這樣,你需要將它作爲一個數字類型的表格列來存儲。如果你不需要這樣做,那麼一個帶有兩個字符列(以及一個產品ID)的簡單的「鍵值」表將是一個好的開始。