6

这是我第一次开发将由 10 到 15 人同时使用的应用程序,所以我不太确定有什么好方法可以最大限度地减少更新冲突。

本质上,我的应用程序如下工作。新项目在收到时通过外部服务插入到数据库中。业务规则表明每个项目将由两名独立的员工进行审查。不用说,商品和评论之间存在一对多的关系。该应用程序重要的方面是任何项目都不能超过两个评论,并且系统必须跟踪谁是两个评论者。另外,谁担任第一审稿人和第二审稿人。

现在,我一切正常。我正在处理的问题是这个(许多类似场景之一)。如果所有用户在相同的 5 分钟内刷新他们的项目列表会发生什么。用户 1 为项目 id 1 提交评论。第二个人提交对同一项目的评论。现在第三个人提交了对项目 id 1 的评论,但已经有 2 条评论,因此该项目已被标记为完成。

在多用户环境中,有哪些可能的方法可以处理多个用户更新同一记录的可能性?

4

2 回答 2

7

我不知道您的应用程序的详细信息,但似乎进行审查的过程扩大了多个人可以开始审查的窗口,然后当他们提交时最终超过两个,

一种选择是引入开始审查的概念。当有人开始进行审查时,他们“开始”审查。这标志着审查开始。系统不应让超过两个启动。

您还可以通过超时我们从未“提交”的评论或能够删除已开始的待处理评论来使其更先进。

于 2011-09-22T00:10:25.510 回答
5

Nhibernate 有各种并发模型,您可以根据需要在项目中实现这些模型。

看看NHibernate 并发

于 2011-09-22T00:04:50.350 回答