0

我正在尝试设计一个小吃店自动化系统(回答第一个问题 - 不,这不是家庭作业,它是用于学习目的)并且我对食谱以及如何在数据库中呈现它们有疑问。我有两个选择:

选项1:

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

在这种情况下,第三个表是典型的多对多表,模型看起来是正确的,使用 Entity Framework 处理数据是小菜一碟。但我也想跟踪金额。通常我使用成分表来插入新的购买。如果成分存在,只需更新数量。

选项 2

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

任何帮助表示赞赏。提前致谢!

4

1 回答 1

1

这是一个可靠的模型开始,请考虑:

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

注意,它仍然是一个MM关系(数量不是PK的一部分,也不是FK的一部分),只是这个关系对的相关数据更多。名称可以更改,但在某些时候,这必须表示为规范化关系模型中的 MM 关系。

不要让框架毁掉一个好的规范化设计——我希望 EF 能够应对这种琐碎的场景;甚至 LINQ2SQL 都可以。

于 2013-05-16T06:00:56.150 回答