gpt4 book ai didi

mysql - 数据建模/标准化问题

转载 作者:行者123 更新时间:2023-11-29 14:20:56 24 4
gpt4 key购买 nike

我正在处理一个厨房食谱脚本,但在访问连接表中的字段时遇到问题。我的表格设置如下:

ingredients
-----------
ingredient_id (pk)
ingredient_name (pk)
ingredient_calories (pk)

recipes
-------
recipe_id (pk)
recipe_name (pk)

meals
-----
meal_id (pk)
meal_name (pk)

recipe_has_ingredients
----------------------
recipe_id (fk)
ingredient_id (fk)

meal_has_recipes
----------------
meal_id (fk)
recipe_id (fk)

一个食谱包含许多成分,而一顿饭包含许多食谱。

问题是:

虽然我可以从recipe_has_ingredients中选择SUM(ingredient_calories),但我不知道如何通过meal_has_recipes表来做到这一点(以计算一顿饭中的总卡路里)。

非常感谢任何帮助:)

最佳答案

您对事实表成分、膳食和食谱的主键进行了过度限制。只需使用 id 字段作为 pk 即可。

您可以对任何名称字段创建唯一约束。

配方包含成分表,应将recipe_id 和againsts_id 作为复合主键。

餐食有菜谱表应将meal_id 和recipe_id 作为复合主键。

现在查询一顿饭的卡路里

 select meal_name, sum ( ingredients_calories)   from

meals, meal_has_recipes, recipes_has_ingredients, recipes, ingredients

where

meal_name = ' good food'

and meal_has_recipes.meal_id = meals.meal_id

and meals_has_recipes.recipe_id = recipes.recipe_id

and recipes.recipe_id = recipes_has_ingredients.recipe_id

and ingredients.ingredients_id = recipes_has_ingredients.ingredients_id;

关于mysql - 数据建模/标准化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11769148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com