我正在建立一个按成分搜索食谱的数据库。
例如,我认为我计划用可接受的成分类型填充数据库,但我不想解析包含特定配方中所有成分的字符串。我正在考虑制作一个可接受的成分表列表,并以某种方式搜索它以查看它是否存在。我觉得这将是一个非常繁重的操作,我希望它尽可能高效。
构建这样的东西的最佳方法是什么?我有几个想法,但它们似乎效率低下。
如果有人在寻找配有黄油,蘑菇和菠菜的食谱,我希望它能够将含有这些成分的食谱归还。
期待听到一些有关此事的建议。
答案 0 :(得分:10)
这就像关系数据库一样简单......
Table One - Ingredients
[ID] [Name] [Description?]
1 butter delicious cow output
2 bread wholegrain please
Table Two - Recipe Basic Data
[ID] [RecipeTitle] [RecipeAuthor] [RecipeSteps] (maybe as BLOB text?)
1 Happy Toast Andrew butter on bread, then toast bread, etc.
Table Three - Recipe Needs (many-to-many)
[RecipeID] [IngredientID]
1 1 (toast needs butter)
1 2 (toast needs bread)
这应该让你开始。
编辑 - 示例查询
“所有使用黄油的食谱”
SELECT r.name FROM recipeNeeds n
LEFT JOIN tableRecipes r
ON r.ID=n.recipeID
LEFT JOIN tableIngredients i
ON i.ID=n.ingredientID
WHERE i.name='butter'