此问题与Database Design: inventory and sales system?
有关例如,汉堡是Product
,由Component
包子,肉,奶酪,泡菜等组成。当这个汉堡出售时,可以通过添加/删除/修改组件来定制
此自定义如何作为订单项计算?是否会有另一个表ProductCustomization
,其中包含对Product
和Component
的引用以及一个表示自定义类型的列?如果您想修改Composition
中Component
的{{1}}(每个汉堡包含3个泡菜),该怎么办?
定制的一个例子是订购没有泡菜的汉堡,或添加额外的奶酪。
答案 0 :(得分:0)
我的解决方案如下:
将有一个产品表。
产品(pid,说明)。
所以汉堡会进入产品表。 它的数据为(Burger,“Bun burger”)
组件将有不同的表格,可以保存每个组件的所有可能变体。
组件(TypeId,描述)
因此每个组件都将保存所有可能的类型和描述。像CHEESE一样有价值(CHEESE_EX,ExtraCheese)(CHEESE_N,普通奶酪)等
我将再为监管产品增加一个表
Custom_product(Custom_prod_Name,pid,typeId,component_quantity)
我们可以使用Custom_product表组合产品。 假设我们希望创建custom_burg_1,然后为要在此汉堡中添加的每个组件创建一个Custom_product表中的一行,其custom_prod_name与custom_burg_1相同。
所以Custom_product表将如下所示:
(custom_burg_1, burger , BUN_N,1 )
(custom_burg_1, burger , MEAT_N,1 )
(custom_burg_1, burger , CHEESE_EX,1 )
(custom_burg_1, burger , PICKLES_N,2 )
(custom_burg_2, burger , BUN_N,1 )
(custom_burg_2, burger , MEAT_SP,1 )
(custom_burg_2, burger , CHEESE_N,1 )
(custom_burg_2, burger , PICKLES_N,3 )
因此,使用此值可以检查custom_burg_1和custom_burg_1的组合。我们也可以在汉堡中修改每个组件及其数量。
答案 1 :(得分:0)
如果您在初始问题中链接了ERD。 我会制作SKU用于拆卸或添加组件。根据您选择的内容,某个组件的数量将为负数或正数。
即。
SKU:No Pickles价格-0.50
SKU:XTRA泡菜价格+0.50
您可以将其添加到任何销售中,您的广告资源应该是正确的,并且您的销售价格也是正确的。