2012-03-07 110 views
2

假設我有一個包含某種記錄類型的表,例如"Fold the melted chocolate into the egg whites"這樣的烹飪說明。該表包含唯一的ID字段和字符串。如何在MySQL中記錄連續的記錄集合

我想爲食譜(每個都有一個唯一的ID和一個名稱)構建另一個表,每個表都是一系列順序指令(某些指令將用於多個/多個食譜)。

什麼是構建我的配方表的最佳方式,以將配方的唯一ID映射到連續的系列指令(該ID不是順序的)?

回答

6

嘗試標準化的設計是這樣的:

recipe 
id name 
1 Recipe1 
2 Recipe2 

recipe_instruction 
recipe_id instruction_id sortorder 
1   5    1 
1   3    2 
1   4    3 
2   6    1 
2   7    2 
2   3    3 

爲了得到進一步的指令列表爲特定的配方,你可以使用此查詢:

SELECT i.the_string 
FROM recipe_instruction AS ri 
JOIN instruction AS i 
ON ri.instruction_id = i.id 
WHERE ri.recipe_id = 1 
ORDER BY ri.sortorder 
+0

尼斯。通過將每條指令映射到1個recipe_ID,我甚至可以使食譜遞歸... – JDelage 2012-03-07 23:53:42