2012-12-23 123 views
0

嗨我想設計一個電子商務網站的數據庫,但我似乎無法找到一種方法來做到這一點,這是我迄今爲止: schema設計一個電子商務商店的數據庫

的問題出現在products.I有66種產品大多具有不同fields.I已經爲ID的,但他們兩人似乎並不很實用:

選項A:

起初我以爲我會爲每種產品類型製作一張桌子,但那會排在66張桌子上,這不太容易維護。我已經開始這樣做了,我創建了Product_Notebook和Product_NotebookBag表。然後我停下來思考了一下,這個解決方案不太好。

選項B

想着它之後多一點,我想出了其數據存儲到一個名爲描述一個單獨的字段B選項。例如:

"Color : Red & Compatibility : 15.6 & CPU : Intel" 

在這種方法中,我可以從數據庫中取出字符串並對其進行處理。

我知道這種方法也不是一個好主意,這就是爲什麼我要求更實用的方法。

回答

1

查看我對this question的回答,這裏是Stack Overflow。對於你的情況,我建議使用實體屬性值(EAV)。

正如我在相關答案中解釋的那樣,出於很多理由,幾乎所有的時候都要避免使用EAV。但是,跟蹤在線目錄的產品屬性是一個應用程序,其中EAV的問題很少,且益處非常廣泛。

1

只需創建一個ProductProperties表並在其中放置所有可能的字段。 (你實際上只需要添加更多的字段到你的Products表中)

然後,當你列出你的產品時,只需使用你需要的字段。

當然,也有許多共同的領域。順便說一句,如果你想存儲數據在數組(選項B?),你會後悔的。你將無法輕鬆地對你的桌子進行排序。

另外,該選項將使得通過特定特徵很難找到特定項目。