当食谱有超过1道菜时会发生什么

时间:2017-12-01 22:36:00

标签: database database-design

我正在尝试为配方数据库制作结构。

这是我到目前为止所得到的:

enter image description here

我对数据库很陌生,所以可能会有一些错误。

我无法理解的是:当食谱有超过1道菜或食物“配件”时会发生什么?这个数据库结构是否仍然有效?

像这样:

enter image description here

我的数据库是否结构失败或......

如果有人可以帮我解释一下,那将是非常好的

1 个答案:

答案 0 :(得分:1)

在我们的宇宙中,食谱没有菜肴;菜肴有食谱。你的问题很难回答,因为我无法想象一个同一食谱会产生多种菜肴的宇宙。

然而,一个非常简单的结构可能是:

Recipe (RecipeID, Name)

SauceSteps (StepID, RecipeID, StepText, Index)
DishSteps (StepID, RecipeID, StepText, Index)

DishIngredients (RecipeID, Name, Qty, Unit)
SauceIngredients (RecipeID, Name, Qty, Unit)

RecipeID将是食谱表的FK。使用此方法,您可以为每个食谱包含许多步骤或成分记录。

您可以通过添加tinyint或bool标志来进一步简化这一点,以确定每个步骤或成分是酱料还是菜肴类型。

Recipe (RecipeID, Name)

Steps (StepID, RecipeID, StepText, Index, Type)

Ingredients (RecipeID, Name, Qty, Unit, Type)