Задать вопрос
dzheka3d
@dzheka3d

В чем преимущество триггеров в такой ситуации?

Всем привет! Пытаюсь сделать каскадное удаление для обеспечения целостности данных, с помощью тригеров...
Везде пишут, что преимущество в том, что при удалении данных из одной таблицы мне не придется заботиться о удалении связанных данных из другой.
Но вот ситуация: есть таблица комментариев в котором флагами "news", "posts", "images" определяется связанный с комментарием модуль. Поэтому я создам 3 триггера так, чтобы при удалении из этих трех таблиц записи, комментарии к ним тоже удалились.
Но если я решу включить комментарии еще к модулю "users", то мне придется вспомнить, что нужно где-то дописать еще один триггер. Конечно, на таком примере это просто, но когда в базе десятки таблиц и между ними десятки связей, то тут появляются проблемы... я ведь могу забыть прописать триггер и целостность данных нарушится.
В таком случае, в чем преимущество? Почему бы мне не дописывать запросы в php и не вспоминать есть ли там у меня такой триггер или нет?

Или, возможно, я что-то не верно понимаю? растолкуйте плз.
  • Вопрос задан
  • 170 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@Camaro67
Помог? - жми "Отметить решением"
При таком подходе конечно нет никакого преимущества. Для вашей задачи подойдет добавлять триггеры через PHP. Т.е. при включении модуля добавляете необходимые триггеры, а при выключении - удаляете их. Да и триггеры работают гораздо быстрее т.е. вы как минимум снимите лишнюю нагрузку.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Caravus
@Caravus
DevOps
Причём тут триггеры? Почему не ключи?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы