Непосредственно не отвечая на ваш вопрос, но обращаясь к некоторым из упомянутых вами вещей:
Легко просматривать таблицы отношений
, ограничения, индексы, хранятся
процедура в базе данных, но триггеры
трудно рассмотреть.
Триггеры так же легко просматривать, как и хранимые процедуры.
Триггеры выполняются невидимыми для
клиент-приложение. Oни
не видны или могут быть прослежены в
код отладки.
True. Но во многих случаях не просто войти в хранимую процедуру.
Трудно следовать их логике
они могут быть уволены до или после
происходит вставка / обновление базы данных.
Неправда. Триггеры срабатывают точно в то время, когда они определены как стрельба ДО или ВМЕСТО.
Легко забыть о триггерах
и если нет документации это
будет трудно понять
новые разработчики за их существование.
Неверно, если вы используете контроль версий.
Триггеры запускаются каждый раз, когда
поля базы данных обновляются, и это
накладные расходы на систему. Это делает систему
беги медленнее
Плохо написанный триггер с такой же вероятностью будет работать плохо, как и плохо написанный код. (Но я не защищаю их чрезмерное использование. Например, если действие может быть удовлетворено ограничением, используйте его поверх триггера.)
Итак, все, что сказано, триггер все еще хороший вариант. Если вам действительно нужно сделать это на уровне приложений, то сделайте это там.