少し前に、私は複数のユーザーが取引の作成を処理するために使用するアプリケーションを作成しました。私はしばらくの間開発を行っていません、そして私がユーザー間の並行性をどのように管理したかを思い出せません。そのため、デザインに関してアドバイスを求めています。
元のアプリケーションには、次の特徴がありました。
- ユーザーごとに1つの重いクライアント。
- 単一のデータベース。
- 取引を挿入/更新/削除するための各ユーザーのデータベースへのアクセス。
- 取引テーブルを反映するアプリケーションのグリッド。そのグリッドは、誰かが取引を変更するたびに更新されます。
- WPFを使用しています。
これが私が疑問に思っていることです:
各アプリケーションのデータベースへの接続を気にする必要はないと考えるのは正しいですか?それぞれにシングルトンがあることを考えると、クライアントごとに1つの接続で問題はないと思います。
アクセスの同時実行を防ぐにはどうすればよいですか?データを変更するときはロックする必要があると思いますが、その方法を覚えていません。
データベースが更新されるたびに(たとえば、別のユーザーによって)自動的に更新されるようにグリッドを設定するにはどうすればよいですか?
よろしくお願いします!