智能手机产品的数据库设计及其功能

时间:2017-07-02 09:55:48

标签: mysql database database-design entity-attribute-value

我想为智能手机及其功能类别

创建数据库
    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 plus产品有ram = 2GB,Screensize = 5英寸等.... 但我想要数据库设计的最佳解决方案 人们一直说EAV是一个非常糟糕的设计,所以任何替代EAV设计。

1 个答案:

答案 0 :(得分:0)

由于您在产品和功能之间存在many-to-many关系,因此您需要一个额外的表格来链接它们:

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

这里的每一行代表功能和产品之间的联系,因此每个产品的功能数量不是恒定的,每个功能的产品数量也是如此。