私は現在、データベースとの間で簡単なデータ操作を行うことができる Web アプリケーション (適度に最新) を設計しています。私はすでに潜在的な問題を考えています。
ユーザーが Web アプリにログインし、リポジトリからデータをロードするとします。(S)彼はデータを変更し、それをデータベースに書き戻したいと考えています。
標準化された方法で次のシナリオを防ぐ方法:
- (S) 彼は 2 回ログインし、2 回目のセッションでデータを保存しましたが、これは最初のセッションから保存すると失われます。
- 他のユーザーがデータをロードし、現在それを変更しているため、変更が上書きされる可能性があります。
2 フェーズ コミットとは言いたくありません。また、独自のバージョンを展開するつもりもありません。同じユーザーが 2 回ログインすること (ユーザー シングルトン) を防止し、厳密なアクセス許可管理と組み合わせることで、最初の問題を解決できます。しかし、ビジネス要件により、複数のエージェントが同じデータを表示および変更できる場合、私はまだ途方に暮れています。
読み取り中の仮定が保持される場合、書き込みが必要なデータをテストする差別化ライブラリ/アルゴリズムはありますか? 大規模な商用アプリケーションの場合、これは通常どのように解決されますか?