Угумс, а это адаптация второго решения со stackoverflow Действительно элегантно: "все те рецепты, что не входят во множество имеющих иные ингридиенты". Добавлено спустя 8 минут 38 секунд: Мне кажется обе задачи полезны в реальной жизни: - в какие рецепты входят эти составляющие? сегодня я хочу рыбу, пусть она будет с базиликом. - что я могу сделать исключительно из этих составляющих? не хочу идти в магазин. А вот сайт оголода.ли красив, но глуп. Список блюд с одним из ингридиентов? Смысл?!!
Задачи полезны как и для размышления над ними, так и практическое применение, необязательно же применять это к кулинарии, первое что пришло в голову коктейльный бар, сайты с тематическими инструкциями итд. Сейчас все проверил, сайт работает нормально: Вариант 1 Совпадение полное, масло и соль опционально, можно ведь и не соленое есть Вариант 2 Совпадений полных нет, сайт и выдает "А если все таки сходить в магазин?"
он и с одним ингридиентом косячит, а с несколькими просто выбирает какой-то один из них и косячит с ним остальные игнорирует. картина с [ манная крупа, помидоры, соль ] в точности та же что с [ помидоры ]
мне кажется у них таблица с ингредиентами чуть другая, там в таблицу ингредиента добавлено поле "важность" (или как то так), т.е. если в поле "важность" стоит 1, то ингредиент обязателен, а если 2 - поле не обязательно. Например соль имеет "важность" - 2, потому что блюдо можно солить, а можно не солить, а вот вермишель имеет "важность" 1, потому что без вермишели точно блюдо не получится
тогда уж лучше ввести вторую таблицу связей. если что-то необязательно, сделаем так, чтобы было необязательно упоминать об этом в запросе. мысль понятна? Добавлено спустя 2 минуты 15 секунд: рецепты(ид, название, описание) ингридиенты(ид, название) ингридиенты_рецепта(ид_рецепта, ид_ингридиента) необязательные_ингридиенты_рецепта(ид_рецепта, ид_ингридиента) а запросы не поменяются )))