Как работать со связными таблицами через php?

Есть две связанные таблицы по ключевому и вторичному значению.
Вопрос в том, как заполнять такие таблицы через php?

Как будет выглядеть запрос в бд, если к примеру, при заполнении таблицы Отзывов, что будет с полем id_categoryRev?

И что логичнее всего делать при ситуации, когда какая нибудь категория будет удалена, что делать с отзывом из этой категории?
И как будет на все это влиять каскадные обновления и удаления?

Заранее спасибо всем, кто поможет разъяснить ситуацию! :)

array('Category' => 
        'id_category INT(30) PRIMARY KEY NOT NULL AUTO_INCREMENT, '
        , 'id_signin INT(30) NOT NULL, '
        , 'nameCategory VARCHAR(50) NOT NULL'
        )
    , array('Reviews' => 
        'id_review INT(30) PRIMARY KEY NOT NULL AUTO_INCREMENT, '
        , 'id_categoryRev INT(30) NOT NULL, '
        , 'fio VARCHAR(50) NOT NULL, '
        , 'email VARCHAR(50) NOT NULL, '
        , 'review TEXT(5000) NOT NULL'
        , 'FOREIGN KEY (id_categoryRev) REFERENCES Category (id_category) ON DELETE CASCADE ON UPDATE CASCADE'
  • Вопрос задан
  • 2681 просмотр
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Согласно записи 'ON DELETE CASCADE ON UPDATE CASCADE' при удалении категории все отзывы, относящиеся к ней, тоже будут удалены. При изменении `id_category` категории поле `id_categoryRev` соответствующих отзывов тоже будет изменено.
Поскольку поле `id_categoryRev` NOT NULL, то при записи отзыва в базу Вы обязательно должны определить категорию, иначе MySQL выдаст ошибку.
Ответ написан
metamorph
@metamorph
Ежели прямо велосипед хотите изобретать, тогда так:
1. Разгребаете массив, выполняете нужные инсерты по очереди. После созданием родительской записи дополнительно извлекаете ее id.
2. Триггеры ON DELETE CASCADE.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
14 авг. 2020, в 02:27
1000 руб./за проект
14 авг. 2020, в 01:51
600 руб./за проект
13 авг. 2020, в 23:56
200000 руб./за проект