В прошлом я никогда не был фанатом использования триггеров для таблиц базы данных. Для меня они всегда представляли некоторую «магию», которая должна была произойти на стороне базы данных, далеко от контроля кода моего приложения. Я также хотел ограничить объем работы, которую должна выполнять БД, поскольку это обычно общий ресурс, и я всегда предполагал, что триггеры могут дорого обойтись в сценариях с высокой нагрузкой.
Тем не менее я обнаружил пару случаев, когда триггеры имели смысл использовать (по крайней мере, на мой взгляд, они имели смысл). Однако недавно я оказался в ситуации, когда мне иногда нужно было «обходить» курок. Я чувствовал себя виноватым из-за необходимости искать способы сделать это, и я все еще думаю, что лучший дизайн базы данных уменьшит необходимость в этом обходе. К сожалению, эта БД используется множеством приложений, некоторые из которых обслуживаются очень некомпетентной командой разработчиков, которая кричала об изменениях схемы, поэтому я застрял.
Каково общее мнение о триггерах? Любишь их? Ненавижу их? Думаешь, они служат цели в некоторых сценариях?
Думаете ли вы, что необходимость обходить триггер означает, что вы «делаете это неправильно»?