食品订购中的菜肴定制

时间:2015-09-14 11:57:45

标签: database

我想确保特定部件的设计是否正确。 场景是:

披萨可以根据其大小,浇头,面包等进行定制,但配料的奖品将取决于尺寸;例如,当选择尺寸7"时,每个顶部的奖品将为$1,而尺寸14"的奖品将为$2(或其他一些定制可能取决于其他一些一个)。

其中一项定制仅适用于特定尺寸;例如,当选择大小7"时,将只显示另一个自定义。 (这个场景只是一个例子,除了披萨之外还有很多东西可以定制,因为它是一个食品订购应用程序)

目前,针对这个问题,我设计了3个表:

  1. Dishes(d_id,name,desc,base_price)
  2. Customization(c_id,d_id(foreign key,name)
  3. options(o_id,c_id(foreign key),parent_id,name,price)
  4. 自定义表将保留自定义的名称,如大小,外壳,浇头等。 选项表将保存每个自定义的内容。 选项中的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中表示这一点。 请大家尽快回复,并建议我应该在设计中包含任何其他更改或功能(除此部分外)。 如果提供任何有用的链接,那将会很棒。

    谢谢。

1 个答案:

答案 0 :(得分:0)

options表中的parent_id是dish表中d_id的外键吗?