2012-03-07 68 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