我在mysql数据库(用于网站)中有食谱,我需要附加到其他食谱作为父子关系。我需要一个食谱才能有多个父母食谱。最初我以为我可以在食谱表中有一个parent_id列,但是如果一个食谱有多个父母不起作用。然后我想我只需要创建一个查找表,其中parent_id和child_id匹配,但父和子都是食谱,那么查询如何知道区分哪个是父项,哪个是我做select时的子项声明?这有道理吗?
答案 0 :(得分:0)
我会使用两个表:recipes(ID, ...)
和connections(pID, cID)
每个食谱都有一个ID
,在connections
内你可以保存父子关系。
recipes
将如下所示
(0, Soup)
(1, Cookie)
(2, Cookiesoup)
connections
将如下所示
(0, 2)
(1, 2)
要查询Soup
的所有子食谱ID
= 0,您可以使用此
SELECT * FROM recipes JOIN connections ON recipes.ID = connections.cID WHERE connections.pID = 0
要查询Cookiesoup
的所有父母食谱ID
= 2,您可以使用此
SELECT * FROM recipes JOIN connections ON recipes.ID = connections.pID WHERE connections.cID = 2