2012-02-12 21 views
3

數據庫模式不是我的強項,但是我正在制定一個食譜模式,並希望在我繼續使用我的代碼之前,先從專家的一些輸入。MySQL模式DBAdmins可以請你看看這個嗎?

InnoDB與關係。

Tabels Recipe_StepsRecipe_Step_Ingredients的關聯設置爲ON UPDATE RESTRICTON DELETE CASCADE

enter image description here

好,我重新安排事情有點,我想我不會丟失任何功能更簡單。通常食譜列出成分和說明分開,所以我不認爲我需要將步驟鏈接到成分。

你們認爲什麼?

enter image description here

+0

在'Recipe_Steps'中,您還使用PK來覆蓋步驟順序 - 這可能會給您插入步驟 – 2012-02-13 00:01:32

+0

帶來麻煩所以,您會推薦我使用其他方法作爲配方步驟的PK嗎?我會如何處理與食譜_步驟_成分和配料的許多關係? – KMG 2012-02-13 00:16:10

+1

把關係留在PK上 - 這就是它所屬的地方(你可能想把它叫做「id」來與其餘的一致),但是你可能會考慮像'step_order int not null'這樣的附加字段並填充它1..n爲食譜 – 2012-02-13 00:26:19

回答

0

一個建議是,Recepie步驟表不能用recepie成分連接....你可能想這樣做,因爲不同的成分在不同的步驟中使用。

+0

是的,當我意識到Epicurious和AllRecipes分開說明和成分時,我做到了這一點。示例:http://allrecipes.com/Recipe/Dark-Chocolate-Truffles/Detail.aspx?src=rotd – KMG 2012-02-13 04:54:36