配方数据库扩展

Recipe Database extended

我正在进行一个以该数据库为后端的项目。我有一些关于我正在努力解决的设计方面的问题。

这是我目前的设计:

Recipe(id, name, description, time, serving, skill)

Ingredient(id, name, type, description, BaseAmount, AmountType, cost)

RIngredient(RecipeID, IngredientID, AmountNeeded, amount type)

RStep(RecipeID, StepNo, Step description)

Meal(MealID, RecipeName, RecipeServing)

Inventory(InvID, IngredientID, IngredientName, IngredientCost, AmountNeeded)

Timetable(Day, Breakfast, Lunch, Dinner)

这顿饭 table 是为了能够将数据存储到时间中 table,但是这种设计是否可行,因为将来如果这顿饭煮熟时有不止一份,这顿饭应该储存起来,第二天或最多 2 天食用。因此,有效利用成分。 库存是为了跟踪已购买的物品并计算剩余的成分。这样一来,如果有剩余的成分,可以通知用户,这样他们下次就不必购买那么多了。

我还希望能够为该食谱实例添加或删除其他成分。这将作为 sql 语句 delte/update 完成,还是需要单独的 table。

如果您对设计或您认为效果更好的任何内容提出任何意见,我们将不胜感激。

A Recipe 生产了一些份量 -- 这就是您所说的 serving 的意思吗?

你可以制作一个 "double recipe" 或者,也许,一个 "half recipe",所以需要指定一些东西 'factor'。

因此,您需要另一个 table 来指示 "making a recipe";我将其命名为 BatchRecipeId factordatetime

一个 Meal 由多个事物组成,因此您需要在 Meal 和膳食中涉及的每个批次之间进行多对多映射 table。

你不能把剩菜冷冻起来吗?所以 "a day or 2" 基本上是无关紧要的。但是你的冰箱里会有 Servings 的库存。

我不知道你要去哪里Timetable;大部分信息 can/should 在 Meal.

Inventory 中减去 5 磅面粉时,转换 "cups" 的花很有趣。