我正在尝试创建一个与食谱相关的网站,用户可以在其中添加自定义膳食,在用餐期间,他们可以添加食物,然后列出食物的成分。例如:
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的汉堡包的成分。
我想知道这是否有意义,或者是否有更好的方法。
这是一个粗略的数据库架构: