加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

跨许多PHP请求的MySQL事务

发布时间:2020-12-13 17:50:48 所属栏目:PHP教程 来源:网络整理
导读:我想创建一个用于以类似事务的方式操作发票的界面. 该数据库包含一个发票表和一个invoice_lines表,发票表中包含结算信息,invoice_lines表包含发票的行项目.该网站是一组脚本,允许添加,修改和删除发票及其相应的行. 我遇到的问题是,我希望数据库的ACID属性能
我想创建一个用于以类似事务的方式操作发票的界面.

该数据库包含一个发票表和一个invoice_lines表,发票表中包含结算信息,invoice_lines表包含发票的行项目.该网站是一组脚本,允许添加,修改和删除发票及其相应的行.

我遇到的问题是,我希望数据库的ACID属性能够反映在Web应用程序中.

>原子:当用户点击保存时,修改整个发票或根本不更改整个发票.
>一致:应用程序代码已确保一致性,不能将行添加到不存在的发票中.发票ID不能重复.
>隔离:如果用户正在对发票进行一组更改,我希望在用户单击“保存”之前隐藏其他用户的更改.
>耐用:如果网站死亡,数据应该是安全的.这已经有效了.

如果我正在编写桌面应用程序,它将始终保持与MySQL数据库的连接,允许我在编辑的开头和结尾简单地使用BEGIN TRANSACTION和COMMIT.

根据我的理解,你不能在一个PHP页面上进行BACIN TRANSACTION而在另一个页面上进行COMMIT,因为页面之间的连接是关闭的.

有没有办法在没有扩展的情况下实现这一目标?根据我的发现,只有SQL Relay这样做(但它是一个扩展).

你不想拥有长时间运行的事务,因为这会限制并发性. http://en.wikipedia.org/wiki/Command_pattern

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读