我正在尝试创建一个与食谱相关的网站,用户可以在其中添加自定义膳食,并且在膳食中他们可以添加食物,然后列出食物的成分。例如:
Meal = Dinner
Food = Hamburger
Ingredient = Tomato
用户可以从预先填写的食品数据库中选择食品。他们还可以从中央成分数据库添加成分。因此,网站的任何用户都可以使用相同的食物和成分 ID。
我面临的挑战是确保 food_has_ingredients 表以某种方式链接到用户。在下图中,膳食与用户相关联。由于食品和配料 ID 可以被多个用户重复使用,我不能依赖这些 ID 来确定哪个用户将配料添加到食品中。
举个例子:
User 1 adds the food "hamburger" (id 10) to the meal_has_food table, then associates the ingredients "ketchup" (id 20) to the food_has_ingredients table.
User 2 adds the food "hamburger" (id 10) to the meal_has_food table, then associates the ingredients "pickles" (id 21) to the food_has_ingredients table.
如果有人搜索从餐汉堡包 (10) 中获取所有成分并将其限制为一行,它总是会给出第一个人的条目。因此,我将餐食 ID 关联为外键,这样我可以说获取属于餐食 ID X 的汉堡包的成分。
我想知道这是否有意义,或者是否有更好的方法。
这是一个粗略的数据库模式: