具有不同属性的多类产品的数据库模式
Database schema for multiple category of product with different attributes
我搜索了整个 Whosebug,但我似乎找不到问题的答案。
此问题与电子商务网站有关
问题是:
来自特定类别的产品具有一组特定的属性。例如,一台计算机有 Ram、CPU、屏幕尺寸...等
一件衬衫有尺码、颜色...等等
所有产品都有共同的属性(例如价格和库存等)。
但是如何管理其类别中每个产品的特定属性?
起初我为列出所有属性的产品的每个类别制作了一个 table,但后来我在过滤每个产品及其属性时遇到了问题。我确信这不是一个好主意,因为在获取新类别时我必须创建一个新的 table。例如,如果我想在我的网站上销售书籍,我需要添加书籍 table
"best practice"是什么方式?
这是我所做的一个例子:
product (idproduct, name,price,...(other attributes))
类别(idcat、名称、idParentCategory)
父类别(idPcat)
PC(idPc,内存,CPU,屏幕大小..等)
衬衫(id衬衫,尺码,颜色)
裤子(idPant,waist,color)
这里的问题是我无法在产品 table 与其类别之间建立联系以提取属性。
有更好的解决方案吗?
提前感谢您的帮助
如果我很好地理解您的问题,解决您的问题的一种方法是将属性映射到类别 table,因为它们是特定于类别而不是特定于项目的。
这样,您将拥有:
product(idproduct,name,price...(类别属性值))
类别(idcat,名称,idParentCategory,(类别属性))
要将产品映射到它们的类别,您只需 table 与两个外国 PK:
产品类别(idprodFK,idcatFK)
这将允许您将产品映射到相应的类别并验证产品的值与类别的属性。
或者您将值数组留在 productOfCategory 关系中。
例如,对于计算机产品,因此属于计算机类别,您将拥有 productOfCategory(ComputerProductID,ComputersCategoryID,"3.0 GHz,6GB Ram,.....")
There are attributes common to all products (e.g. price and stock etc.).
为此创建一个 table 使用适当的现实生活密钥,例如EAN(考虑为此使用第三方数据源)。
But how do I manage attributes specific to each product within its category? ... if I wanted to sell books in my website I would need to add a books table
是的,书籍的特定属性会放在这里。请记住创建对 'attributes common to all products' table 的引用,例如确保 EAN 对应于有效的 ISBN。还要考虑到某些书籍属性可能与其他类似产品相同,因此您可以在数据库中建模各种子类型。
我搜索了整个 Whosebug,但我似乎找不到问题的答案。
此问题与电子商务网站有关
问题是:
来自特定类别的产品具有一组特定的属性。例如,一台计算机有 Ram、CPU、屏幕尺寸...等 一件衬衫有尺码、颜色...等等
所有产品都有共同的属性(例如价格和库存等)。
但是如何管理其类别中每个产品的特定属性?
起初我为列出所有属性的产品的每个类别制作了一个 table,但后来我在过滤每个产品及其属性时遇到了问题。我确信这不是一个好主意,因为在获取新类别时我必须创建一个新的 table。例如,如果我想在我的网站上销售书籍,我需要添加书籍 table
"best practice"是什么方式?
这是我所做的一个例子:
product (idproduct, name,price,...(other attributes))
类别(idcat、名称、idParentCategory)
父类别(idPcat)
PC(idPc,内存,CPU,屏幕大小..等)
衬衫(id衬衫,尺码,颜色)
裤子(idPant,waist,color)
这里的问题是我无法在产品 table 与其类别之间建立联系以提取属性。
有更好的解决方案吗?
提前感谢您的帮助
如果我很好地理解您的问题,解决您的问题的一种方法是将属性映射到类别 table,因为它们是特定于类别而不是特定于项目的。 这样,您将拥有: product(idproduct,name,price...(类别属性值)) 类别(idcat,名称,idParentCategory,(类别属性))
要将产品映射到它们的类别,您只需 table 与两个外国 PK: 产品类别(idprodFK,idcatFK)
这将允许您将产品映射到相应的类别并验证产品的值与类别的属性。
或者您将值数组留在 productOfCategory 关系中。 例如,对于计算机产品,因此属于计算机类别,您将拥有 productOfCategory(ComputerProductID,ComputersCategoryID,"3.0 GHz,6GB Ram,.....")
There are attributes common to all products (e.g. price and stock etc.).
为此创建一个 table 使用适当的现实生活密钥,例如EAN(考虑为此使用第三方数据源)。
But how do I manage attributes specific to each product within its category? ... if I wanted to sell books in my website I would need to add a books table
是的,书籍的特定属性会放在这里。请记住创建对 'attributes common to all products' table 的引用,例如确保 EAN 对应于有效的 ISBN。还要考虑到某些书籍属性可能与其他类似产品相同,因此您可以在数据库中建模各种子类型。