2016-08-26 3 views
0

У меня есть рецепты в базе данных mysql (для веб-сайта), которые мне нужно будет прикрепить к другим рецептам в качестве родительских отношений с дочерними элементами. Мне нужен один рецепт, чтобы иметь несколько родительских рецептов. Первоначально я думал, что у меня может быть столбец parent_id в таблице рецептов, но если в рецепте есть несколько родителей, которые не работают. Затем я подумал, что мне просто нужно посмотреть таблицу, где parent_id и child_id совпадают, но как родительский, так и дочерний - это рецепты, поэтому как бы запрос знал, чтобы различать родительский элемент и который является дочерним, когда я выбираю заявление? Имеет ли это смысл??Mysql ребенок с несколькими родителями того же типа

+0

Ничего вы упомянули не пугает меня с точки схемы зрения. Можете ли вы описать те запросы, которые вы планируете запускать? –

+0

Итак, у рецептов есть несколько родителей и несколько детей? – Strawberry

+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 

Запросить всех родителей IPES из Cookiesoup с ID = 2 вы можете использовать этот

SELECT * FROM recipes JOIN connections ON recipes.ID = connections.pID WHERE connections.cID = 2 
+0

Ах да! Это имеет смысл сейчас, большое вам спасибо 8) –

Смежные вопросы