我正在设计一个电子商务,其中各个项目的每个产品都有不同的自定义选项,并且正在考虑构建数据库的最佳方法。例如,我可能想要出售红色或白色以及不同尺寸的东西,但另一件可能只能以绿色或红色出售而没有尺寸选项。我有一些我在下面概述的天真的方法,但想知道是否有任何想法。除非有充分理由转向NoSQL,否则我想保持这种关系。
答案 0 :(得分:0)
选项4:
有一个处理多个选项的选项表。
Option
------
Option ID
Item ID
Category ID
Category Text
选项ID是一个自动递增的序号。
项目ID是指向项目的整数。
类别ID是表示类别的整数。例如,Color为1,Size为2。
类别文字是实际的颜色或大小。
此方法有意义当且仅当您不想搜索所有已售出的红色商品或所有已销售的XL商品。
此类数据设计称为entity / attribute data model。
答案 1 :(得分:0)
我会使用类似以下架构的东西:
表'产品'
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行,每一行都有不同的特征,但能够知道出售了多少件马球衫,有多少件红色衬衫(所有类型的产品都已售出),有多少件XL物品等等。
您可能不需要价格字段,但想法是基本马球T恤需要10个单位;小尺寸没有附加价格,而XL有10%的额外价格。大多数颜色可能会花费相同,但一些异国情调的颜色可能会花费10%以上。这种异国情调的XL polo T恤将花费10 * 1.1 * 1.1 = 12.1单位。
此架构假设所有产品都具有所有尺寸和颜色。