【发布时间】:2011-03-14 14:57:21
【问题描述】:
我想创建一个我喜欢的食谱数据库,但我在设计它时遇到了麻烦。我想至少有两张桌子:
- 食谱表(有描述、成分、说明等...)
- 成分表(成分类型、其他属性等...)
将两个表关联在一起的方法是什么?我是否需要第三张表来存储从食谱到多种成分的多种关系?
您可能会说,我对这些东西比较陌生,只是想在第一次尝试时找出正确的方法。
谢谢!
【问题讨论】:
我想创建一个我喜欢的食谱数据库,但我在设计它时遇到了麻烦。我想至少有两张桌子:
将两个表关联在一起的方法是什么?我是否需要第三张表来存储从食谱到多种成分的多种关系?
您可能会说,我对这些东西比较陌生,只是想在第一次尝试时找出正确的方法。
谢谢!
【问题讨论】:
您可以考虑类似文本文件的文件夹,带有某种全文索引。
或者像Recipes(ID,LikeRatio,Description as text)这样的表格。再次进行全文搜索。
理论上,您可以使用@Mike 建议的标准化模型。但看看实际的食谱,它需要更加灵活。例如,在这个模型中,没有证据表明在某个步骤使用了前一步的结果。
【讨论】:
一个食谱有很多成分还是很多食谱有很多成分
我希望后者可以让您按成分查找食谱。
因此,您需要一个中间表来将多对多关系分解为两个一对多关系。
Recipe(RecipeID, etc...)
Ingredients(IngredientID, etc....)
RecipeIngredients(RecipeID, IngredientID, etc..)
然后我会在RecipeIngredients 中输入该食谱的成分数量等信息。
【讨论】:
这是一个非常高级的链接:
http://www.databaseanswers.org/data_models/recipes/index.htm
但如果您真的想自己编写代码,我会使用第三个关系表。
干杯, 迈克
【讨论】: