一个配方数据库模型建议

本文关键字:数据库模型 一个 | 更新日期: 2023-09-27 18:13:54

我正在尝试设计一个零食吧自动化系统(回答第一个问题-不,这不是作业,这是为了学习的目的),我有一个问题与食谱和如何在数据库中呈现它们。我有两个选项:

选项1:

[Ingredients] -> [IngrID, IngrName]
[Recipe] -> [RecipeID, RecipeName]
[IngRecipe] -> [IngrID, RecipeID]

在这种情况下,第三个表是一个典型的多对多表,模型看起来是正确的,使用实体框架对数据进行操作是小菜一菜。但我也想记录一下金额。通常我使用Ingredients作为表来插入新的采购。如果成分存在,只需更新量。

选项2

现在,如果我将列"amount"作为列添加到IngRecipe,那么多对多表的整个想法就消失了,我不再可以使用实体模型来自动填充字段。但我似乎找不到一个更适合写这个专栏的地方了。我在哪里以及如何说"好吧,给我100克鸡胸肉,然后把它加到任何食谱中"

任何帮助都是感激的。提前感谢!

一个配方数据库模型建议

这是一个坚实的模型开始,考虑:

RecipieIngredients -> Recipe (FK), Ingredient (FK), IngredientQuantity
                      Key over (Recipe, Ingredient)

注意,它仍然是 M-M关系(数量不是PK的一部分,也不涉及FK),只是与此关系对有更多相关数据。名称可以更改,但在某些情况下,这个必须在规范化关系模型中表示为M-M关系。

不要让框架毁了一个好的规范化设计——我希望EF可以应付这种琐碎的场景;