Нужна таблица рецептов и таблица категорий таким образом, чтобы рецепт мог иметь более одной категории

Я делаю сайт, на котором хранятся данные в mysql.
Теперь ситуация такова, что мне нужна структура, в которой должна быть таблица с категориями (cat_id, cat_name) и таблица рецептов (r_id, r_name и т. д.). Но условием является то, что один рецепт может иметь более одной категории, и я должен показать, что все рецепты, которые попадают в одну категорию через php.

Все, что мне нужно, это правильная структура.

Я новичок в СУБД. Помощь будет оценена.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
32
1

Ответы 1

Вы можете добавить соединительную таблицу в схему своей базы данных, примерно так:

category_recipe (cat_id, r_id)

Назначение этой таблицы - разрешить сопоставление данной категории более чем одному рецепту. Если вы также хотите, чтобы каждый рецепт мог появляться только один раз, вы можете добавить уникальный индекс в столбец r_id в category_recipe.

Чтобы найти все рецепты, попадающие в определенную категорию, вы можете использовать следующий запрос:

SELECT
    r.r_id, r.r_name
FROM categories c
INNER JOIN category_recipe cr
    ON c.cat_id = cr.cat_id
INNER JOIN recipe r
    ON cr.r_id = r.r_id
WHERE
    c.cat_name = 'some category';

Другие вопросы по теме