ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2019-05-27 00:05:28  阅读:352  来源: 互联网

标签:mysql database editing data-integrity integrity


我在不同的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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有