gpt4 book ai didi

c# - 阻止用户互相覆盖

转载 作者:太空狗 更新时间:2023-10-29 23:55:47 25 4
gpt4 key购买 nike

我想阻止两个用户在更新记录时不小心相互覆盖。也就是说,两个用户加载了一个页面,上面有记录 A。用户一将记录更新为 AB,用户二将其更新为 AC。

我不只是希望最后一次访问数据库来覆盖。我需要一种机制来表明记录已更新,因此您的记录无法保存。

现在我有两个想法是给记录加时间戳并进行检查。如果不匹配,则不允许更新。第二种方法是每次执行更新时对记录进行 GUID,检查 GUID,如果不匹配则不更新。

这两种方法是否有效,如果有效,哪种方法最好。如果没有,你有什么建议。如果它有所作为,这是在 C# 中

谢谢

最佳答案

您提到的这两种方法实际上是等效的 - 无论哪种方式,您都有效地获得了“结账时的记录”的唯一标识符。对于哪个更好,我没有任何特别的看法,尽管时间戳显然为您提供了有关记录何时有效的数据的额外好处。

另一种方法是记住以前的值是什么,并且只有在它们匹配时才允许更新 - 这样,如果用户 A 开始编辑记录,然后用户 B 进入并更改某些内容,然后再将其更改回来,用户 A 的编辑仍然有效。

这些技术的术语是乐观锁定(或 optimistic concurrency control)。

关于c# - 阻止用户互相覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2310091/

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