如何表示表与自身之间的多对多“X包含Y”关系?

时间:2014-04-09 08:26:38

标签: database-design

我有一张装满食物的桌子,例如"康沃尔糕点"和"蔬菜炖"和"胡萝卜"。我想模仿食物可以含有其他食物的事实。 (例如,康沃尔糕点含有蔬菜炖菜,蔬菜炖汤含有胡萝卜,但人们可能会自己吃蔬菜炖菜,或者可能包含不同食谱的胡萝卜。)

所以我认为我应该通过食物表和它自身之间的多对多关系来模拟这个?这意味着我将有一个单独的食物包含"表格,用于存储含有食物的ID,所含食物的ID,以及含有多少食物的数量。

我在这里必须解决的最常见的问题是#34;鉴于我吃过的这些食物清单,已经消耗了多少胡萝卜?"因此,我必须将生吃胡萝卜,加上蔬菜炖肉中所含的胡萝卜,以及康沃尔糕点中的蔬菜炖胡萝卜中的胡萝卜加在一起。吃了,等等。

是否有更自然/标准的方式来表示这些层次结构?

0 个答案:

没有答案