数据库是否会引发恶 数据库触发器是个坏主意吗?根据我的经验,它们是邪恶的,因为它们可能导致令人惊讶的副作用,并且难以调试(特别是当一个触发器触发另一个触发器时)。通常开发人员甚至不会考虑是否存在触发因素。另一方面,似乎你必须FOO在数据库中创建一个新的逻辑,然后在数据库中创建一个新的最简单的地方就是FOO表上的插入触发器。我们唯一一次使用触发器就是设置简单的东西ModifiedDate。
3 回答
慕妹3242003
TA贡献1824条经验 获得超6个赞
触发器的主要问题是:a)它们完全是全局的 - 无论表活动的上下文如何,它们都适用; 和b)他们是隐秘的; 很容易忘记他们在那里,直到他们以无意的(并且非常神秘的)后果伤害你。
这意味着他们需要在适当的情况下小心使用; 根据我的经验,这仅限于关系完整性问题(有时候粒度比你声明性的更细); 通常不用于商业或交易目的。因人而异。
慕侠2389804
TA贡献1719条经验 获得超6个赞
我同意。触发器的问题是人,而不是触发器。虽然更多的是要考虑,更多考虑并增加编码人员正确检查事物的责任,但我们不会丢弃索引以使我们的生活更简单。(错误的索引可能和坏的触发器一样糟糕)
触发器(在我看来)的重要性在于......
- 任何系统都应该始终处于有效状态
- 强制执行此有效状态的代码应该是集中的(不是每个SP都写入)
从维护的角度来看,触发器对于竞争对手的编码器非常有用,对于更多初级/业余的编码器来说也是如此。然而,这些人需要以某种方式学习和成长。
我想这取决于你的工作环境。你有可靠的人,他们学得很好,可以信任有条不紊吗?如果不是你,你似乎有两个选择:
- 接受你必须失去功能来补偿
- 接受你需要不同的人或更好的培训和管理
它们听起来很刺耳,我想它们都是。但这是基本的事实,在我看来......
添加回答
举报
0/150
提交
取消