6

10 人から 15 人が同時に使用するアプリケーションを開発するのはこれが初めてなので、更新の競合を最小限に抑える良い方法がよくわかりません。

基本的に、私のアプリケーションは次のように機能します。新しいアイテムは、受信時に外部サービスを介してデータベースに挿入されます。ビジネス ルールは、各項目が 2 人の独立した従業員によってレビューされることを示しています。言うまでもなく、アイテムとレビューの間には 1 対多の関係があります。アプリケーションの最も重要な側面は、どの項目も 2 回のレビューを超えることはできず、システムは 2 人のレビュー担当者が誰であったかを追跡する必要があるということです。また、誰が第一レビュアーと第二レビュアーを務めたのか。

これで、すべてが機能しました。私が扱っている問題はこれです(多くの同様のシナリオの1つ)。すべてのユーザーが同じ 5 分以内にアイテム リストを更新した場合はどうなりますか。ユーザー 1 がアイテム ID 1 のレビューを送信します。別の人が同じアイテムのレビューを送信します。第三者がアイテム ID 1 のレビューを送信しましたが、既に 2 件のレビューがあり、アイテムは完了としてマークされています。

複数のユーザーが同じレコードを更新する可能性が高いマルチユーザー環境に対処するには、どのような方法がありますか?

4

2 に答える 2

7

I don't know the details of your app but it seems like the process of doing a review widens the window where multiple folks can start a review and then when they commit it ends up being more than two,

One option is to introduce the concept of starting a review. When someone initiates the action of doing a review, they "start" the review. That marks the review as started. The system shouldn't let more than two starting.

You could also make it more advanced by timing out reviews that we're never "submitted" or having the ability to delete a pending review that was started.

于 2011-09-22T00:10:25.510 に答える
5

Nhibernate には、ニーズに基づいてプロジェクトに実装するさまざまな同時実行モデルがあります。

NHibernate-Concurrencyをご覧ください

于 2011-09-22T00:04:50.350 に答える