我搜遍了所有的stackoverflow,但我似乎无法找到问题的答案。
此问题与电子商务网站有关
问题在于:
特定类别的产品具有一组特定的属性。例如,计算机具有Ram,CPU,屏幕尺寸等 和衬衫有尺寸,颜色等等
所有产品都有共同的属性(例如价格和库存等)。
但是,如何管理特定于其类别中每个产品的属性?
首先,我为列出所有属性的产品的每个类别创建了一个表,但是我在使用其属性过滤每个产品时遇到了问题。我确信这不是一个好主意,因为我必须在获得新类别时创建一个新表。例如,如果我想在我的网站上出售书籍,我需要添加书籍表
什么方式是“最佳实践”?
以下是我所做的一个例子:
产品(idproduct,名称,价格,......(其他属性))
category(idcat,name,idParentCategory)
ParentCategory(idPcat)
PC(IDPC,RAM,CPU,screenSize..etc)
衬衫(idShirt,大小,颜色)
裤子(idPant,腰围,颜色)
这里的问题是我无法在产品表及其类别之间建立连接以提取属性。
有更好的解决方案吗?
提前感谢您的帮助
答案 0 :(得分:1)
所有产品都有共同的属性(例如价格和库存等)。
使用适当的真实生活密钥为此创建一个表格,例如EAN(考虑使用第三方数据源)。
但是,如何管理其类别中每种产品的特定属性? ...如果我想在我的网站上出售书籍,我需要添加书籍表
是的,书籍特有的属性会在这里。请务必创建对“所有产品共有的属性”表的引用,例如确保EAN对应有效的ISBN。还要考虑一些图书属性可能与其他类似产品相同,因此您可以在数据库中建模各种子类型。
答案 1 :(得分:0)
解决问题的一种方法是,如果我理解您的问题,就是将属性映射到类别表,因为它们是特定类别而非特定于项目。 这样,您就拥有: 产品(idproduct,名称,价格......(类别属性值)) category(idcat,name,idParentCategory,(category attributes))
要将产品映射到他们的类别,您只需要一张包含两个外国PK的表格: productOfCategory(idprodFK,idcatFK)
这样您就可以将产品映射到相应的类别并验证产品'值类别'属性。
或者您将值数组保留在productOfCategory关系中。 例如,对于作为计算机的产品,因此也就是计算机类别的产品,您拥有productOfCategory(ComputerProductID,ComputersCategoryID," 3.0 GHz,6GB Ram,.....&#34 ;)