Три причины, которые вы назвали, неверны и предают чистую перспективу кодера:
Чрезвычайно высокий риск потери / перезаписи данных
(у вас нет такого риска, если ваши вещи должны быть закодированы на языке, который просто не называется SQL?)
Высокая стоимость БД в $
(у вас нет такого риска, если ваши вещи должны быть закодированы на языке, который просто не называется SQL?)
Ненужная работа, которую можно автоматизировать с помощью приложения
(Автоматизация ваших вещей на языке, который не называется SQL, не является процессом, который включает анализ и написание кода реализации?)
Триггеры являются полезной конструкцией по крайней мере для одной цели: для защиты целостности данных в отношении всех правил целостности, которые не поддерживаются SQL декларативно. Подробные сведения см. В разделе «Продвинутая математика для специалистов по базам данных», глава 11.
Все это говорит: разработчикам следует остерегаться присоединения [выполнения] кода, скажем, к INSERT INTO CUSTOMER по причинам, скажем, «это происходит только в том случае, если мы регистрируем нового клиента, и все новые клиенты должны получать приветственное письмо». (или некоторые такие) ". Предположим, вы захватили другую компанию, и все ее клиенты должны быть интегрированы в вашу базу данных. Уч. Неправильное использование триггеров часто можно проследить до «слишком активного присоединения делового значения к операции БД». Этот конкретный материал действительно принадлежит к той части, где кодируется «бизнес-операция / бизнес-функция», которая может быть кодом приложения или вызываемой хранимой процедурой (отличной от триггеров).