数据库触发器是个坏主意吗?
根据我的经验,它们是邪恶的,因为它们会产生令人惊讶的副作用,并且很难调试(尤其是当一个触发器触发另一个触发器时).通常开发人员甚至不考虑是否有触发因素.
另一方面,如果每次在数据库中创建新的FOO
时都必须有逻辑,那么最简单的地方就是在FOO表上插入触发器.
我们唯一一次使用触发器是为了非常简单的事情,比如设置ModifiedDate
.
数据库触发器是个坏主意吗?
根据我的经验,它们是邪恶的,因为它们会产生令人惊讶的副作用,并且很难调试(尤其是当一个触发器触发另一个触发器时).通常开发人员甚至不考虑是否有触发因素.
另一方面,如果每次在数据库中创建新的FOO
时都必须有逻辑,那么最简单的地方就是在FOO表上插入触发器.
我们唯一一次使用触发器是为了非常简单的事情,比如设置ModifiedDate
.
触发器的主要问题是
这只意味着它们需要在适当的情况下小心使用;根据我的经验,这仅限于关系完整性问题(有时粒度比声明性的要细);通常不用于商业或交易目的.YMMV.