2017-07-02 88 views
1

我想創建智能手機的數據庫及其與功能類別的功能數據庫設計的智能手機產品及其功能

Feature Category 
------------------------ 
|id  name 
------------------------ 
|1  Processor 
|2  Memory 
|3  Display 
|_______________________ 


Features 
------------------------------------------------ 
|id  name    feature_category_id 
------------------------------------------------ 
|1  Process Speed   1 
|2  Process Technology  1 
|3  RAM      2 
|4  Screen Size    3 
|_______________________________________________ 

Product 
---------------------------------------- 
|id  name    Description 
---------------------------------------- 
|1  Moto G4 
|2  Iphone 6s plus 
|3  Lenovo K4 
|______________________________________ 

現在我想存儲爲特定產品功能爲如iphone 6S加上產品具有RAM = 2GB ,Screensize = 5英寸等... 但我想要數據庫設計的最佳解決方案。
人們總是說EAV是一個非常糟糕的設計,所以任何替代EAV設計。

+0

將需要搜索的功能放在自己的列中;將剩下的部分放在另一列的JSON字符串中。 –

回答

0

既然你的產品和功能之間的​​關係,您將需要一個額外的表之間鏈接:

Products_Features 
---------------------------------------- 
|id Product Feature  Value 
---------------------------------------- 
|11  1   1   5'' 
|22  1   2   2GB 
|33  2   1   6'' 
|33  2   2   3GB 
|________________________________________ 

這裏的每一行代表功能和產品,因此特徵數之間的聯繫每個產品的產品數量不一樣,每個產品的產品數量也不一樣。

+0

這仍然是一個EAV模式。 –

+0

那又如何?這是針對這類問題的標準化解決方案 – Dimgold

+0

僅提供替代名稱。 –