【问题标题】:Custom Product Attributes for eCommerce Web Site电子商务网站的自定义产品属性
【发布时间】:2010-09-27 23:57:10
【问题描述】:

我正在使用 MySQL 5 为电子商务网站创建一个数据库。我希望数据库尽可能灵活,以便网站所有者可以为各种类型的产品添加自定义属性。例如,他们的产品可以有 4 种衬衫尺码和每种尺码 3 种颜色,或者有 6 种衬衫尺码、每种尺码 4 种颜色并且可能还有第 3 个属性的产品。

我遇到的问题是他们应该能够根据产品的各种属性而不是产品本身来控制产品的数量。公司可能有一种产品有 25 种款式和颜色的库存,但有 13 种不同尺寸和颜色组合的库存。

关于如何在 MySQL 数据库中构造它,有没有好的解决方案?目前我有一个表,将存储产品 ID、数量和属性将使用逗号分隔的“键:值”语法连接到 1 个字段中。

这是我第一次尝试创建这样的系统。任何信息/帮助将不胜感激。如果您需要更多信息,我也可以提供。


我非常感谢您的推荐。但是要执行这种“派生项目”方法,我是否需要为每种类型的产品创建不同的数据库表,因为产品可能具有与之关联的可变属性?

【问题讨论】:

    标签: mysql database database-design


    【解决方案1】:

    最简单的解决方案显然是让每个衬衫颜色组合成为一个完全独立的项目,并放弃属性概念。我相信这就是大多数真实商店的运作方式。当您考虑到“基础”项目的更改频率时,这是有道理的。

    如果这不可接受,您可以有一个 DerivedItem 表,其中每一行都是一个单独的派生项,它引用 BaseItem 表中的基本项。这将以更复杂的设计为代价消除一些冗余。

    【讨论】:

      【解决方案2】:

      我会选择产品和衍生产品,或者你可能想要的任何名称。

      如果您愿意,您仍然可以在这些上添加属性。

      然后,您可以在产品表上放置通用属性(描述等)以及派生产品上不同的属性(颜色、尺寸、价格等)。

      这些属性最好作为一个单独的表来实现,在派生属性上带有一个外键,用于诸如颜色之类的东西。这消除了用户输入“深蓝色”和“蓝色(深)”之类的内容并期望您的系统神奇地知道它们是相同颜色的机会......!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        • 1970-01-01
        • 1970-01-01
        • 2012-05-06
        相关资源
        最近更新 更多