如何检查其他人是否编辑同一实体

frebpwbc  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(201)

假设在管理面板中,一个用户正在编辑任何实体,如果另一个用户也试图编辑相同的实体/产品信息,那么该用户可以得到一个通知或“其他人已经在编辑相同的实体,请他等待”之类的信息。

3xiyfsfu

3xiyfsfu1#

您需要一种将实体标记为忙碌的方法。
一个好方法:向实体的表中添加两列。

busy_user   INT          either a user id or zero
    busy_until  TIMESTAMP    the time when the busy setting expires, in case the user goes away

然后,当用户尝试编辑项目时,您可以执行以下操作:
如果 busy_user 为非零且不是当前用户,并且 busy_until > NOW() 拒绝编辑请求;项目正忙。
busy_user 设置为当前用户的id。设置为 NOW() + INTERVAL 5 MINUTE 根据需要进行编辑。
当用户完成编辑时,设置 busy_user 归零。

相关问题