gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 07:24:11 25 4
gpt4 key购买 nike

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

我想在我自己的应用程序中实现相同的功能,我已经考虑了一下。以下示例是执行此操作的良好做法吗?

它有点像这样:

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

1) 用户 B 也想对文章 X 进行更新。现在由于我们的 用户 A 已经在编辑文章,事件 表被查询,看起来像这样:

|   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 决定继续并保存他的更改, token 将与所有其他数据一起发布以更新数据库,并切换查询以删除带有 token uniqueid## 的行>。如果他决定做其他事情而不是提交他的更改,文章 X 将在 100 秒后仍可供 User B

编辑

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

祝大家周末愉快!

最佳答案

是的,这很好,应该可以正常工作。

此外,我会增加用户 B 破坏锁的可能性 - 如果需要的话!

也就是说,有可能用 B 的锁替换 A 的锁。这样,您就可以避免时间限制,他们会看到‘嘿,这是由 A 编辑的,这把锁已经 XXX 秒/分钟了。你想打破这把锁吗?'。

对于好的用户(即没有恶意的管理员),这种方法可能比只用 100 秒来编辑一些东西要好——有时你只是需要更多时间。

关于mysql - 防止两个用户编辑相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2792013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com