No, en realidad son una buena idea. Si hay un problema con sus desencadenantes específicos, entonces no los está haciendo bien, pero eso generalmente significa que hay un problema con su implementación, no el concepto de los desencadenantes en sí :-).
Usamos desencadenantes mucho porque coloca la actividad específica de DBMS bajo el control de la base de datos a la que pertenece. Los usuarios de un DBMS no deberían tener que preocuparse por ese tipo de cosas. La integridad de los datos recae en la base de datos en sí, no en las aplicaciones o usuarios que la usan. Sin restricciones y desencadenantes y otras características en la base de datos, las aplicaciones deben cumplir las reglas y solo se necesita una aplicación / usuario malintencionado o con errores para destruir los datos.
Por ejemplo, sin disparadores, no existirían cosas tan maravillosas como columnas autogeneradas y tendría que procesar una función en cada fila al seleccionarlas. Es probable que mate el rendimiento de DBMS, mucho mejor crear la columna generada automáticamente en el momento de inserción / actualización, ya que esa es la única vez que cambia.
Además, la falta de activadores evitaría que las reglas de datos se apliquen en el DBMS, como los activadores previos, para garantizar que las columnas tengan un formato específico. Tenga en cuenta que esto es diferente de las reglas de integridad de datos que generalmente son solo búsquedas de claves externas.