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

我有一个我正在建设的电子商务商店。 我正在使用Rails / ActiveRecord,但实际上没有必要回答这个问题(但是,如果您熟悉这些内容,请随时回答Rails / AR)。

商店的要求之一是它需要代表两种类型的产品:

  1. 简单的产品 – 这些产品只有一个选项,例如乐队的CD。 它有基本的价格和数量。
  2. 有变化的产品 – 这些产品有多种选择,例如有3种尺寸和3种颜色的T恤。 尺寸和颜色的每种组合都有自己的价格和数量。

我过去做过这种事情,做了以下事情:

  • 产品表,其中包含产品的主要信息(标题等)。
  • 有一个变量表,其中包含每种变体的价格数量信息。 产品 has_many 变种
  • 对于简单的产品 ,它们只有一个关联的Variant

有没有更好的方法可以做到这一点?

几年前我在制作电子商务产品,我们按照你描述的方式做了。 但我们又增加了一层来处理同一产品的多个属性(大小和颜色,就像你说的那样)。 我们分别跟踪每个属性,并且我们有一个“SKU”表,其中列出了每个产品允许的每个属性组合。 像这样的东西:

attr_id attr_name 1 Size 2 Color sku_id prod_id attr_id attr_val 1 1 1 Small 1 1 2 Blue 2 1 1 Small 2 1 2 Red 3 1 1 Large 3 1 2 Red 

之后,我们添加了库存跟踪和其他function,我们将它们绑定到sku ID,以便我们可以单独跟踪每个function。

你的方式似乎非常灵活。 这与我的第一次切割类似。