2010-01-11 49 views
9

我有一个电子商务商店,我正在构建。我使用的是Rails/ActiveRecord,但这并不是必须回答这个问题(但是,如果您熟悉这些内容,请随时以Rails/AR的方式回答)。在数据库中清晰地表示电子商务产品和变体

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

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

我已经做了这样的事情在过去,并做了以下内容:

  • 有一个产品表,这对产品(标题等)的主要信息。
  • 有一个变体表,它保存每种类型的变体的价格信息。 产品have_many变体
  • 对于简单产品,他们只会有一个关联的变体

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

回答

0

你的方式似乎非常灵活。这与我的第一次剪辑相似。

8

几年前,我从事电子商务产品的工作,我们按照您所描述的方式完成了这项工作。但是我们增加了一个图层来处理同一产品的多个属性(大小和颜色,就像你说的)。我们分别跟踪每个属性,并且我们有一个“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 

后来,我们增加了库存跟踪和其他功能,而我们将其绑在SKU ID,这样我们就可以分别跟踪每一个。

+0

如果产品没有任何属性会怎么样? attr_id是否为空?还是你确保每个产品至少有一个属性? – 2012-06-01 23:01:44

+1

在这种情况下,该产品在SKU表中没有任何行。 – 2012-06-12 15:24:00

+0

通配符怎么样?尺寸未定义的“小”的变体? – 2015-06-07 14:28:01

相关问题