Мне нравится готовить коктейли в канун Нового года, и у меня довольно много рецептов.В этом году я хочу сделать его меньше, минимизируя количество открытых соков и т. Д., Поэтому я потратил время, чтобы вылить все нужные мне рецепты в базу данных MySQL, в основном в следующем формате:
RECIPE
RID (INT, PK, auto_inc)
NAME (VARCHAR)
INGREDIENT
IID (INT, PK, auto_inc)
NAME (VARCHAR)
RECIPE_INGREDIENT
RID (INT, FK to RECIPE.RID)
IID (INT, FK to INGREDIENT.IID)
AMOUNT (VARCHAR)
PK: RID, IID
Что я хочу сейчас сделать, так это сказать: «Я не могу обойтись без коктейля x, y и z».Определение ингредиентов, необходимых для создания x, y и z, тривиально.
Но как бы изящно ответить на вопрос: «Если у меня есть ингредиенты, то я 1 , я 2 и я 3 ,какие рецепты я могу сделать? "
Что быстро приходит мне на ум, это процедура, которая перебирает все рецепты и добавляет их в набор, который возвращается в конце, только если нетОтображение rid_iid для него, чей iid отсутствует в данном наборе iids.Но я не являюсь базой данных или SQL-гуру, и сейчас я очень устал, поэтому я думаю, что может быть что-то более изобретательное ...