我正在尝试设计一个“食谱盒”数据库,但我无法正确使用它。我不知道我是否走在正确的轨道上,但这就是我所拥有的。
食谱(recipeID等)所以我有几个问题。
感谢您的帮助。
答案 0 :(得分:1)
您是否查看过任何现有架构,例如DatabaseAnswers上的this one?
答案 1 :(得分:1)
一些想法:
您可能希望对配方和成分使用相同的表,并带有类型指示器列。原因是食谱可以包含子食谱。我们将组合表称为“项目”。然后你的RecipeIngredient表看起来像
RecipeIngredient (RecipeId, ItemId, Amount).
我希望该表还有一个测序列。
如果您想使用这些配方进行任何计算(例如,缩放,营养分析,生产计划),那么您的数量将需要指定一个度量单位。您可以明确地执行此操作(通过为uofm设置单独的列),也可以使用文本字段表示数量,并期望用户输入“1杯”或“2 tbs”等值。如果你采用这种方法,你需要确保他们输入的内容是可识别的,并在每次需要使用它时解析它。这可能会变得非常复杂,特别是如果您想以正式方式表示配方产量。
假设你想要从配方到类别的1:M,我仍然不确定为什么你的RecipeCategory表会有一个Name列。我认为该名称来自类别定义。
我同意Dave的说法,你不太可能重复从配方到配方的准备步骤,因此RecipePreparationSteps表(或类似的东西)会更合适。
然而,食谱通常会与成分和指示混合在一起。例如
简介文字 一些成分。 准备说明 一些更多的成分 烘焙说明。
为了适应这种情况,您需要在RecipeIngredient和RecipePreparation步骤表中巧妙地设置排序值,以便您可以按照正确的顺序组合来自两者的数据以进行演示。另一种方法是,使用“RecipeLine”表来代替这两个表,使得每行可以表示指令或成分。我想这可能就是你的建议。纯粹主义者会对这种超载的表格皱眉,但我不是纯粹主义者。
这是我碰巧知道很多的话题,所以要问什么。
答案 2 :(得分:0)
看起来是一个好的开始。一些想法: