php - Web 服务器事务与 DB 触发器 - 哪个是首选?
问题描述
想请教一下两个表的每个值都必须同时改变的情况。
以上有两种方式,Web服务器事务,DB触发。
Web 服务器事务是 100% 安全的吗?我担心一个表的一个值已更改但另一个表的另一个值没有更改的情况。
我认为 DB 触发器比 Web 服务器事务更安全,但由于上述担忧,我同时使用了它们。
另外,我想问你关于数据库程序的问题。是首选吗?我更喜欢使用 php 代码并且不使用它。
解决方案
事务的存在可以完全解决您描述的问题。事务中的所有查询都成功,或者数据库被回滚,就好像什么都没发生过一样。
虽然我确信有人会不同意我的观点,但我不喜欢使用触发器或存储过程来创建程序逻辑。不是因为安全,而是因为触发器变成了隐藏代码,而不是在您的版本控制系统中(除非您对迁移很勤奋),向查询中添加了您在阅读源代码时看不到的逻辑。
那么错误处理呢?如果你的触发器失败了你会怎么做?
想想下一个将在你的代码上工作的人,即使那个人是你,两年后。简单明了总是值得的。
推荐阅读
- javascript - 在任何 DOM 元素上触发没有用户操作的文件输入字段
- ios - 如何将 Swift 中的文本格式化到底部?
- java - 为什么要重置连接?
- sql - SQL换字命令
- variables - 将活动单元格的值复制到不同/非活动工作表 - 如何确定要使用的目标/目标工作表
- python - if condition does not executed in python after reading values from text file
- c# - IronPython 2.7.8 中的 VISBRAIN
- reactjs - 组件的重新渲染是否会创建其子组件的新实例?
- angularjs - 如何为 AngularJS(版本 1)的 angular-ui/ui-calendar 设置默认月份?默认情况下,它将其设置为当前月份
- android - 如何比较两个不同的 Firebase 数据库子数据项