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