我想为智能手机及其功能类别
创建数据库 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设计。
答案 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
|________________________________________
这里的每一行代表功能和产品之间的联系,因此每个产品的功能数量不是恒定的,每个功能的产品数量也是如此。