![]() |
1
2
这尤其困难,因为有很多原因,包括你提到的原因。如果您锁定了一行,而使用该锁定的用户只需关闭浏览器,该怎么办?然后这排锁死了。或者你会运行一个晚上的例行程序来清除所有的锁,但是直到第二天用户才能访问记录,等等。 一般来说,自从数据库被发明以来,这就是一个问题,所以你会认为已经找到了一个解决方案,但我不知道。通常,我会尝试推荐通过业务流程而不是软件将这种情况最小化的方法。 在软件中,您可以考虑不锁定,而是通过保留时间戳来提供进一步最小化多个更新的影响的方法。当用户得到一行,然后发布来更新它时,系统将检查时间戳是否仍然相同。如果是这样,它允许更新。如果没有,它要么拒绝更改,要么聪明一点,尝试确定其数据与当前数据的区别,并尽可能地合并值。 您可以在此处阅读更多信息: Optimistic vs. Pessimistic locking |