首页 > 解决方案 > Web 服务器事务与 DB 触发器 - 哪个是首选?

问题描述

想请教一下两个表的每个值都必须同时改变的情况。

以上有两种方式,Web服务器事务,DB触发。

Web 服务器事务是 100% 安全的吗?我担心一个表的一个值已更改但另一个表的另一个值没有更改的情况。

我认为 DB 触发器比 Web 服务器事务更安全,但由于上述担忧,我同时使用了它们。

另外,我想问你关于数据库程序的问题。是首选吗?我更喜欢使用 php 代码并且不使用它。

标签: phpmysqldatabaserdbms

解决方案


事务的存在可以完全解决您描述的问题。事务中的所有查询都成功,或者数据库被回滚,就好像什么都没发生过一样。

虽然我确信有人会不同意我的观点,但我不喜欢使用触发器或存储过程来创建程序逻辑。不是因为安全,而是因为触发器变成了隐藏代码,而不是在您的版本控制系统中(除非您对迁移很勤奋),向查询中添加了您在阅读源代码时看不到的逻辑。

那么错误处理呢?如果你的触发器失败了你会怎么做?

想想下一个将在你的代码上工作的人,即使那个人是你,两年后。简单明了总是值得的。


推荐阅读