我正在寻找一个与产品和产品变体相关的数据库架构。

4

我已经查看了关于这个主题的其他讨论,特别是:

在数据库中清晰地表示电子商务产品和变体

以及:

DB模式帮助,链接产品变体

但我觉得它们缺乏深度和简单。

我正在寻找一个生产质量的模式来支持产品和产品变体,如颜色、尺寸、左/右手、容量等。

此外,我需要支持产品套件、相关产品、依赖产品。

我还需要支持产品线/样式,例如所有风格为“温莎”的水龙头和淋浴头内的所有产品。

如果你愿意分享这么有价值的东西,任何帮助都将不胜感激。

谢谢


6
需要雇佣数据库管理员吗? - Mike Purcell
2个回答

2
如果你打算将所有内容放入关系型数据库(我看到你的SQL标签,所以认为是这样),那么你需要好好计划。你应该寻找一位有经验的数据库管理员(DBA),他可以与你一起详细地检查你的规格说明。
如果你没有明确的需求规格,你可能需要考虑使用像couchdb这样的文档型数据库,它将为你提供更多灵活性,以适应数据和产品实体属性的变化。管理/规范化数据的工作则更多地在你的应用程序代码中而不是关系型数据库内部进行。

谢谢你,是的,我的意图是使用SQL关系型数据库。我已经在这方面工作了一段时间,它非常复杂。我希望能得到一些见解。显然,我不是第一个解决这个问题的人。我有足够的经验来将任何建议与我的要求结合起来。 - sdfor
如果您查看现有的开源电子商务解决方案(如OSCommerce,Magneto和Oxid Eshop)的数据库设计,则可能会受益。这些解决方案有基本变体,因此可能是涉及该主题的良好一般起点。使用数据库工具来可视化数据库结构。 - hakre
好主意。我现在正在做这件事。 - sdfor

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类型来存储值,因为问题是开放式的。这是一个数量数字,还是一个三页文字描述?您可以根据需要进行调整。您也可以使用这个表格来处理依赖关系,因为它不需要是产品ID和属性ID的唯一组合,因为您可能有一个或多个颜色,或者它可以属于多个组等。

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

如果您有任何问题或需要澄清,我会在力所能及的范围内提供帮助。这是相当基础的内容,应该符合您的需求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接