Her*_*err 3 mysql database-design
对于当前的客户项目,我开发了一个存储产品的CMS .
产品是具有标题,文本等某些特性的条目.
但是,有些客户希望拥有不同的属性,如价格,颜色等.
我尝试使我的代码尽可能通用,所以我不想修改
每个客户的代码.
我的问题:
我如何设计这样一个数据库,产品可以拥有无限的多个属性?
如何为这种不同的设计创建/生成表单?
谢谢阅读.
您可以拥有一个属性表和一个拥有属性的表,因此您的表模式将如下所示:
产品(标识,标题,文字......)
属性(id,name)
Product_Properties(ProductId,PropertyId,value)
因此,您可以在属性表上定义所需属性的列表,并通过在Product_Properties中插入元组将它们分配给产品.考虑您有2个产品(A和B),在您的情况下,具有以下属性:高度,颜色,价格如下:
A: 180, Red, 200$
B: 170, Blue, 270$
Run Code Online (Sandbox Code Playgroud)
你的表将有这些元组:
产品(标识,标题,文字):
(1,"A","desc1")
(2,"B","desc2")
Run Code Online (Sandbox Code Playgroud)
(1,"height")
(2,"color")
(3,"price")
Run Code Online (Sandbox Code Playgroud)
(1,1,"180")
(2,1,"179")
(1,2,"Red")
(2,1,"Blue")
(1,3,"200")
(2,3,"270")
Run Code Online (Sandbox Code Playgroud)
SELECT P.title
FROM Product P,Properties Pr,Product_Properties PP
WHERE P.id=PP.ProductId AND PP.PropertyId=Pr.id AND Pr.name='height' AND PP.value='200'
Run Code Online (Sandbox Code Playgroud)