Триггер (БД)
Процедура БД, автоматически срабатывающая на INSERT/UPDATE/DELETE. BEFORE/AFTER и уровни ROW/STATEMENT. Применение: журналы аудита (кто что изменил), денормализация, вычисляемые столбцы, бизнес-правила.
PostgreSQL: триггер вызывает функцию (PL/pgSQL, PL/Python и т. д.). MySQL: тело триггера записывается прямо в определении. Компромиссы: триггеры прячут логику — на вопрос «почему меняется этот столбец?» в коде приложения ответа нет, придётся копаться в схеме БД. Производительность: тяжёлые триггеры замедляют даже простые UPDATE. Современная альтернатива: CDC и обработчик на стороне приложения для развязки. Классический антипаттерн: триггер вызывает другой UPDATE, который запускает ещё один триггер, — рекурсивный взрыв. Современная практика: не использовать триггеры для бизнес-логики, для журналов аудита — можно.