2012-03-01 84 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列,這樣只有已知成分的配方纔可以添加到配料表中。這可以幫助減少循環引用的機會