数据库
首页 > 数据库> > mysql – 防止两个用户编辑相同的数据

mysql – 防止两个用户编辑相同的数据

作者:互联网

我在不同的Web应用程序中看到了一个功能,包括Wordpress(不确定?),如果用户打开文章/帖子/页面/数据库中的任何内容,则会警告用户,而其他人同时编辑相同的数据.

我想在我自己的应用程序中实现相同的功能,我已经考虑了一些.以下示例是如何做到这一点的好习惯吗?

它有点像这样:

1)用户A进入神秘文章X的编辑页面.查询数据库tableEvents以确保当前没有其他人正在编辑同一页面,当时没有人正在编辑.然后随机生成令牌并将其插入名为Events的数据库表中.

1)用户B也希望对文章X进行更新.现在,由于我们的用户A已经在编辑文章,因此查询了Events表,如下所示:

|   timestamp   |   owner   |   Origin      |   token      |
------------------------------------------------------------
|   1273226321  |   User A  |   article-x   | uniqueid##   |

2)正在检查时间戳.如果它有效且少于100秒,则会显示一条消息,并且用户无法对请求的文章X进行任何更改:

Warning: User A is currently working with this article. In the meantime, editing cannot be done. Please do something else with your life.

3)如果用户A决定继续并保存他的更改,则会将令牌与所有其他数据一起发布以更新数据库,并切换查询以使用令牌uniqueid ##删除该行.如果他决定做其他事情而不是提交他的更改,那么文章X仍然可以在100秒内为用户B进行编辑

让我知道你对这种方法的看法!

祝大家周末愉快!

解决方法:

编辑文章的时间总是少于100秒吗?

标签:mysql,database,editing,data-integrity,integrity
来源: https://codeday.me/bug/20190526/1158971.html