我想确保特定部件的设计是否正确。 场景是:
披萨可以根据其大小,浇头,面包等进行定制,但配料的奖品将取决于尺寸;例如,当选择尺寸7"
时,每个顶部的奖品将为$1
,而尺寸14"
的奖品将为$2
(或其他一些定制可能取决于其他一些一个)。
其中一项定制仅适用于特定尺寸;例如,当选择大小7"
时,将只显示另一个自定义。
(这个场景只是一个例子,除了披萨之外还有很多东西可以定制,因为它是一个食品订购应用程序)
目前,针对这个问题,我设计了3个表:
Dishes(d_id,name,desc,base_price)
Customization(c_id,d_id(foreign key,name)
options(o_id,c_id(foreign key),parent_id,name,price)
自定义表将保留自定义的名称,如大小,外壳,浇头等。
选项表将保存每个自定义的内容。
选项中的parent_id
将引用选项表,因为浇头价格将取决于所选尺寸的选项。
例如:
1) dishes
id name
1 pizza
2) customization
c_id d_id name
1 1 size
2 1 toppings
3) options
o_id c_id parent_id name price
1 1 1 7" 5$
2 1 2 14" 10$
3 2 1 abc 1$
4 2 2 abc 2$
有没有更好的方法在db中表示这一点。 请大家尽快回复,并建议我应该在设计中包含任何其他更改或功能(除此部分外)。 如果提供任何有用的链接,那将会很棒。
谢谢。
答案 0 :(得分:0)
options表中的parent_id是dish表中d_id的外键吗?