繁体   English   中英

乐观锁定和并发

[英]Optimistic locking & concurrency

我的应用程序在多用户环境中工作以获取病历。 该应用程序的一个重要部分是编写医疗记录,医生应该始终查看当前的书面数据,然后根据需要添加或更正任何信息。

当两位医生(A,B)同时查看数据时,我知道了这种情况,其中一位将进行更改并点击保存(A)。

另一位医生(B)仍在编辑旧数据,他不知道医生(A)所采用的变化。

当医生(B)点击保存时,应用程序将比较数据库中的Version列,然后应用程序返回错误消息(“数据已被其他用户更改!!!”)。

在这种情况下我的问题:我的解决方案中应该有哪些选择。

我正在寻求您的经验中的专业解决方案或想法。

我的应用程序使用:Java Swing用于最终用户客户端和MySQL数据库。

医生乙方应绝对以某种方式,因为他打开了它的记录已修改通知。 其余的由您/程序的要求决定。 A医生的改变是否被覆盖是否重要? 让医生B查看医生A所做的更改,然后决定是否仍应保存更改(由医生B做出)会更好吗? 这些变化应该合并吗? 这一切都取决于您决定设计的内容,以及可能对您正在创建的系统施加的任何要求。 如果没有关于您正在设计的系统或其要求的更多细节,则无法提供具体答案。

建议:发送实时通知

如果A进行更改并点击保存,您可以发送消息“数据已被其他用户更改!!!” B保存他的更改之前立即到B。

此方法类似于stackoverflow。 当我写下答案时,你可以改变你的问题,我会收到一条消息

已对此帖进行了编辑; 点击加载

因此,如果A,B,C ......打开数据集D,他们应该将自己注册为观察者。 您可以使用websockets或轮询来实现此方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM