我正在设计一个电子商务,其中各种项目对每个产品都有不同的自定义选项,并且正在考虑构建我的数据库的最佳方法。例如,我可能想出售红色或白色以及不同尺寸的商品,但另一件商品可能只出售绿色或红色,没有尺寸选项。我有一堆我在下面概述的幼稚方法,但想知道是否有人有任何想法。我想保持这种关系,除非有充分的理由转向 NoSQL。
- 选项 1:为每种类型的选项提供一个单独的表格。例如,一个表包含所有可能的颜色列表,另一个表使用颜色子集引用此表并且还与产品相关联。然后将有另一个表格来处理为添加到购物车的实际产品选择的颜色。
- 选项 2:由于每个产品的选项数量很少,为什么不只使用一组包含每个可能选项的值的列。这基本上是产品表,其中包含一个名为“颜色”的文本列,然后仅列出可用的颜色选项。我个人不喜欢这个,因为它太受限制了——如果我想将图像与每种颜色相关联或根据选项更改定价怎么办?
- 选项 3:前两者的组合,其中每个产品都有一组列,这些列将引用可用的自定义选项。例如,每个产品都有一个“颜色选项”列,如果不为空,该列将可用于该产品并指向一组结构良好的选项。