gpt4 book ai didi

php - 如果其他人打开了记录,我如何防止其他人打开它?

转载 作者:行者123 更新时间:2023-11-29 04:26:56 24 4
gpt4 key购买 nike

我正在创建一个 PHP Web 应用程序,它将涉及:

1) 用户打开一条记录

2) 用户对记录进行修改

3) 保存对记录的更改

因为这是一个多用户应用程序,我想防止两个用户同时打开同一条记录,并且一个用户的更改覆盖下一个用户的情况,最好是在记录被删除时强制执行某种锁定方法当用户离开页面时自动解锁。

最佳答案

记录,你的意思是SQL记录?如果是这样,您可以添加另一列 isOpen。只要其他人打开它,就将它设置为 1,在这种情况下,不要将它提供给任何其他人。

在这种情况下,最好还实现超时机制,其中记录在被强制关闭之前只能打开 'x' 分钟。

(编辑:此答案假设您希望在用户查看从表中获取的信息的整个过程中锁定记录。如果您只想在读/写操作发生时锁定记录在那个记录上,MySQL 引擎有内置的机制)

回应您的评论

为了在事件用户离开时让其他人可以访问记录,我想到了两种方法来实现它:

  • 让超时机制来处理它。根据您的情况,足够短的时间窗口可能会很好。
  • 除了超时之外,还实现心跳机制 - 页面上的 Ajax 脚本轮询服务器,让它知道页面仍然打开。如果用户导航离开,服务器会识别跳过的心跳,并取消记录。在这种情况下,超时仍然优先。因此,如果用户让窗口打开并走开,服务器仍会收到心跳,但当时间窗口关闭时,服务器会取消记录(尽管仍会收到心跳)。

关于php - 如果其他人打开了记录,我如何防止其他人打开它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9620457/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com