Здравствуйте. Скажите пожалуйста как такое реализовать. Есть 2 таблицы products(id, name, description) и images (id, id_product, name)
И я хочу сделать связь, что если удаляется продукт, то удаляются все изображения с этим продуктом, но в тоже время, чтобы можно было создать продукт БЕЗ изображений. Я пробовал так
ALTER TABLE tb_product
ADD CONSTRAINT tb_product_tb_image_id_product_fk
FOREIGN KEY (id) REFERENCES tb_image (id_product);
Вроде всё хорошо, но я не могу создать товар без изображений.
Это потому, что перепутали в направление связи. Констрейнт формируется в зависимой таблице. ( а как я понимаю картинка является зависимым объектом от продукта)
ALTER TABLE tb_images
ADD CONSTRAINT tb_image_tb_product_id_product_fk
FOREIGN KEY (product_id) REFERENCES tb_product (id) ON DELETE CASCADE;
По идее такой констрейнт с каскадным удалением приведет к 1. созданию индекса на поле product_id в таблице image, что ускорит джойны 2. невозможности вставить image без продукта 3. к удалению связанных image при удалении продукта
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я хочу подключиться к БД MySQL через Nodejs в моем проекте на Angular Universal