这是我第一次开发一个将由10-15人使用的应用程序,因此我并不确定最小化更新冲突的好方法。
基本上,我的应用程序的工作原理如下。新项目在收到后通过外部服务插入数据库。业务规则表明每个项目将由两个独立员工进行审核。不用说,项目和评论之间存在一对多的关系。该应用程序的最重要方面是什么,没有任何项目可以超过两个评论,系统必须跟踪谁是两个评论者。此外,谁是第一位评论员,第二位。
现在,我已经做好了一切。我正在处理的问题是这个(许多类似场景之一)。如果所有用户在相同的5分钟内刷新他们的项目列表会发生什么。用户1提交项目ID 1的评论。第二个人对同一项目提交评论。现在,第三人提交了对商品ID 1的评论,但已经有2条评论,因此该商品已被标记为已完成。
有多种方法可以处理多用户环境,其中很好可能会有多个用户更新同一记录?
答案 0 :(得分:7)
我不知道您应用的详细信息,但似乎进行审核的过程扩大了多个人可以开始审核的窗口,然后当他们提交时最终会超过两个,
一种选择是引入开始审核的概念。当有人启动审核操作时,他们会“开始”审核。这标志着审查开始了。系统不应该让两个以上的开始。
您还可以通过暂停我们从未“提交”或能够删除已启动的待审核的评论来使其更先进。
答案 1 :(得分:5)
Nhibernate有各种各样的concurreny模型,您可以根据自己的需要在项目中实现这些模型。