【问题标题】:Database Model for Product Customization Options产品定制选项的数据库模型
【发布时间】:2012-10-03 17:00:25
【问题描述】:

我正在设计一个电子商务,在该电子商务中,每个产品的各种商品都有不同的自定义选项,并且我正在考虑构建我的数据库的最佳方式。例如,我可能想出售红色或白色以及不同尺寸的商品,但另一件商品可能只出售绿色或红色,没有尺寸选项。我有一堆我在下面概述的幼稚方法,但想知道是否有人有任何想法。除非有充分的理由迁移到 NoSQL,否则我希望保持这种关系。

  1. 选项 1:为每种类型的选项提供一个单独的表格。例如,一个表包含所有可能的颜色列表,另一个表使用颜色子集引用此表并且还与产品相关联。然后会有另一个表格来处理为添加到购物车的实际产品选择的颜色。
  2. 选项 2: 由于每个产品的选项数量很少,为什么不只使用一组包含每个可能选项的值的列。这基本上是产品表,其中包含一个名为“颜色”的文本列,然后仅列出可用的颜色选项。我个人不喜欢这个,因为它限制太多 - 如果我想将图像与每种颜色相关联或根据选项更改定价怎么办?
  3. 选项 3: 前两者的组合,其中每个产品都有一组列,这些列将引用可用的自定义选项。例如,每个产品都有一个“颜色选项”列,如果不为空,该列将可用于该产品并指向一组结构良好的选项。

【问题讨论】:

    标签: database database-design model database-schema


    【解决方案1】:

    选项 4:

    有一个处理多个选项的选项表。

    Option
    ------
    Option ID
    Item ID
    Category ID
    Category Text
    

    选项 ID 是一个自动递增的序列号。

    项目 ID 是一个指向项目的整数。

    类别 ID 是表示类别的整数。例如,颜色为 1,尺寸为 2。

    类别文本是实际的颜色或大小。

    此方法有意义当且仅当您不想搜索所有已售出的红色商品或所有已售出的 XL 商品。

    这种类型的数据设计称为entity / attribute data model

    【讨论】:

    • 有趣。我想我还需要为每个产品放置一个映射,为该类别提供有效选项。我不明白为什么它会阻止我搜索出售的红色商品或出售的 XL 商品。只要我知道每种产品的选项以及所售产品的配置,我就应该能够编写查询以获取该信息。
    • @Dan Goldin:是的,您可以编写该查询来获取已售出的所有红色商品或已售出的所有 XL 商品。当查询运行缓慢时,不要回到这里抱怨。 :-)
    【解决方案2】:

    我会使用类似以下架构的东西:

    表格“产品”

    Product id
    Product name
    Product base price
    

    表格“尺寸”

    Size ID
    Size name
    Additional price
    

    表格“颜色”

    Colour ID
    Colour Name
    Additional price
    

    表'SaleItems'

    SaleItem ID
    Product ID
    Size ID
    Colour ID
    

    客户会购买“SaleItems”表中包含的商品。一个项目的例子是一件马球 T 恤,它有四种不同的尺寸和三种不同的颜色。这样,您将在 'SaleItems' 表中有 12 行,每行具有不同的特征,但能够知道售出了多少 Polo 衫、多少红衬衫(售出所有类型的产品)、多少 XL 商品等。

    您可能不需要价格字段,但基本款马球 T 恤售价 10 件;小号没有附加价格,而 XL 有 10% 的附加价格。大多数颜色的价格可能相同,但一些异国情调的颜色可能会贵 10%。一件这种奇特颜色的 XL polo T 恤将花费 10 * 1.1 * 1.1 = 12.1 个单位。

    此架构假定所有产品都可以有各种尺寸和颜色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      • 2021-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-02
      相关资源
      最近更新 更多