设计:如何在交易项目表

时间:2016-06-22 12:39:18

标签: database-design

此问题与Database Design: inventory and sales system?

有关

例如,汉堡是Product,由Component包子,肉,奶酪,泡菜等组成。当这个汉堡出售时,可以通过添加/删除/修改组件来定制

此自定义如何作为订单项计算?是否会有另一个表ProductCustomization,其中包含对ProductComponent的引用以及一个表示自定义类型的列?如果您想修改CompositionComponent的{​​{1}}(每个汉堡包含3个泡菜),该怎么办?

定制的一个例子是订购没有泡菜的汉堡,或添加额外的奶酪。

2 个答案:

答案 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

您可以将其添加到任何销售中,您的广告资源应该是正确的,并且您的销售价格也是正确的。