MySQL. Как поддерживать ссылочную целостность при наличии связи многие-ко-многим?

Здравствуйте.
Может быть немного сумбурный вопрос, но, тем не менее, озвучу.

Пытался найти информацию, но не нашел. Про ссылочную целостность много говорится в контексте связей один-к-одному, один-ко-многим, но в контексте связи многие-ко-многим - очень мало. Оно и понятно - в связи один-ко-многим (про один-к-одному не говорю, т.к. используется относительно редко) все очевидно. Есть строка-предок, у которой есть пара - строка-потомок. Потомок без предка не может существовать. Удаляем предка - должен исчезать потомок, обновляем id - он же должен измениться в поле внешнего ключа потомка. Тут и становится нужной возможность поддержания ссылочной целостности средствами движка БД.

Актуально ли, вообще, использование возможностей поддержания ссылочной целостности средствами движка (ON UPDATE, ON DELETE) при использовании связей многие-ко-многим? Для меня не очевиден ни ответ "да", ни ответ "нет".
Можете привести примеры?

Ведь все эти CASCADE, STRICT, etc. работают на паре сущностей, а тут их две.
  • Вопрос задан
  • 3643 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Многие-ко-многим реализуется через таблицу отношений. Каждая из двух таблиц сущностей имеет с таблицей отношений связь один-ко-многим. Если удалить запись из одной из таблиц сущностей, то в таблице отношений удалятся соответствующие записи связи.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы