我在不同的网络应用程序中看到了一个功能,包括 Wordpress(不确定?),如果他/她从数据库中打开一篇文章/帖子/页面/任何内容,而其他人正在同时编辑相同的数据,它会警告用户。
我想在我自己的应用程序中实现相同的功能,我对此进行了一些思考。以下示例是如何执行此操作的好习惯吗?
它有点像这样:
1)User A
进入神秘文章X的编辑页面。Events
查询数据库表以确保当前没有其他人在编辑同一页面,此时没有人。然后随机生成一个令牌并将其插入一个名为 的数据库表中Events
。
1)User B
还想对文章X进行更新。现在由于我们User 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 秒内可供编辑User B
让我知道您对这种方法的看法!
祝大家周末愉快!