我正在寻找产品和产品变体的数据库架构

时间:2011-12-23 17:57:41

标签: php sql database

我特别关注了有关该主题的其他讨论:

Representing ecommerce products and variations cleanly in the database

DB schema help, linking variations of products

但我发现它们缺乏而且过于简单。

我正在寻找一种生产质量架构,以支持产品和产品的变化,如颜色,尺寸,左/右手,容量等。

另外,我需要支持产品套件,相关产品,相关产品。 此外,我需要支持产品系列/款式,例如风格中的所有产品,如“windsor”风格的水龙头和淋浴头。

如果您愿意分享如此有价值的东西,我们将不胜感激。

由于

2 个答案:

答案 0 :(得分:2)

如果您打算将所有这些放入关系数据库(您的SQL标记让我这么认为),您需要做好计划。您应该留意具有该领域经验的数据库管理员(DBA),并且可以与您一起详细阅读您的规范。

如果您没有预先确定需要做什么的规范,您可能需要查看基于文档的数据库,例如couchdb,它将为产品实体的数据和属性中的变体提供更大的灵活性。管理/规范化数据的工作更多地在应用程序的代码中,然后在关系数据库中。

答案 1 :(得分:2)

根据我的经验,您所寻找的(简单起见)是一个多表关系结构。根据您提供的信息,我已经制定了以下草案

产品表

用于维护产品清单

[product]
   - id  (BIGINT, AUTO_INC, PK, NOT NULL)
   - title (VARCHAR(255), INDEX, NOT NULL)

产品属性表

关于您的属性的一切独特之处,它们可能有或没有共同之处(即大小颜色,左/右,容量等)

[product_property]
   - id (INT, AUTO_INC, PK, NOT NULL)
   - title (VARCHAR(255), INDEX, NOT NULL)

产品属性值表

此表是您告诉它产品的属性具有什么价值的地方(即此产品10234-3为黑色,容量为25)。我使用BLOB类型作为值,因为问题是开放的。这是数量编号还是三页文字说明。您可以调整为necissary以满足您的需求。您也可以使用此表来处理依赖关系,它不需要是product_id和property_id的唯一组合,因为您可能有一种或多种颜色,或者它可以属于多个组等。

[product_property_value]
   - product_id  (BIGINT, FK => product.id, NOT NULL )
   - property_id (INT, FK => product_property.id, NOT NULL)
   - value (BLOB)

如果您有任何疑问或需要澄清,我会尽我所能帮助您。它非常基本,应该符合您的需求。