2012-03-01 83 views
1

我正在建立一个新的数据库,我正在通过一个循环引用,我不确定设计这个的最佳方法。试图避免循环引用

所以这里是简单的英语。

我有一个食谱。配方要求配料。这是一切都很好,除了配方的一个成分可能需要另一个配方,或者它可能是商店购买的物品。

例如: 我想做成沙拉(配方)
这将有生菜,胡萝卜,洋葱(所有好为止只是商店购买食材。)
,但我希望有牧场调料。 (呃,我可以在商店购买牧场敷料,但我有一个用于牧场敷料的食谱,我想用来做牧场敷料。)

你会怎么去创建最好的食谱和配料表时尚?我有一个想法,如何做到这一点,但它涉及循环引用和所有的网站说远离它。

+0

ssmusoke的答案我相信是正确的。这是自引用合理的情况。您需要处理与编程逻辑的关系的嵌套性质。但如果你考虑最终用户,你不会想要向他们展示原始配方的每种成分的成分。他们会自己决定是去购买牧场敷料,还是点击一个按钮来获取牧场敷料配方。 – 2012-03-07 15:41:55

回答

2

我建议如下表:

一)配方 - 名称,描述,isingredient等信息

B)成分 - 名称,描述,fromstore(yes或no值如果从买商店),recipieid(这种成分配方的ID)。这使成分有recipies

三)recipie_ingredients - receipieid,ingredientid(基本上这关系食谱其成份)

的建议是正确的,因为你可以在一个圆形的环形状的成分,recipies等结束

更新:我会建议在配方中添加一个isingridient列,这样只有已知成分的配方才可以添加到配料表中。这可以帮助减少循环引用的机会