数据库设计关系

时间:2014-10-18 14:38:03

标签: database-design

我有两张桌子:

食品

id,name,unit,createdDate,lastUpdate

成分

id,name,quantity,unit,food_id_fk,createdDate,lastUpdate

问题是食物可以分为两类,每类都可以拥有 成分的一套。食物也可能没有类别。怎么做?非常感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

您似乎对数据库设计有基本的了解。您是否只需要一个带有食物ID列的分类表和一个带有类别ID列的成分表?没有类别的食物在类别表中没有条目。

答案 1 :(得分:0)

您的问题并不完全清楚,因此您遇到麻烦并不奇怪。

不要担心SQL;担心这种关系。

我不认为食物应该有单位作为专栏。事实上,我在配方中使用一杯切碎的固体或8盎司的纯胡萝卜会影响单位,但不会改变胡萝卜的本质。

我认为成分应该与食物有一个很多的关系。

我没有看到食物更新日期专栏的目的。我把它们描绘成不会改变的只读数据。

您是否希望食谱配方表1:许多配料?步骤怎么样?大多数食谱按特定顺序进行,每个步骤都需要一定的时间。

答案 2 :(得分:0)

如果你尝试这样的事情怎么样:

食物( id ,name,servingSize,servingUnit,totalServings,createdDate,lastUpdate)

成分( id ,名称,单位,createdDate,lastUpdate)

类别( id ,name,createdDate,lastUpdate)

食谱( food_id_fk,category_id_fk ingredient_id_fk ,数量,评论)

<强>的PrimaryKey

请注意,我已经创建了一个名为&#34; Recipe&#34;这将使您可以为每种关系食品类别提供多种成分。如果特定产品&#34;没有类别&#34;只需使用Category Id = 0(例如:General Category)