3

最初に、私はデータベースにあまり詳しくない、一見ばかげた質問をして申し訳ありません。

基本的に高度に専門化されたチケット追跡システムであるローカル ネットワーク上で使用するために、C# でデスクトップ アプリケーションを再設計しています。基本的に、ユーザーがアプリケーションを起動すると、システムにアクセスするための資格情報を求められ、アプリケーションは中央データベース (現在はローカル マシンで実行されている MySQL サーバー) にデータを照会し、画面に表示します。

私の質問は、4 人のユーザーが接続されていて、2 人のユーザーが新しいデータを入力した場合、各ユーザーに新しいデータを知らせる最も効率的な方法は何ですか? データベースにクエリを実行し、タイマーで新しいデータを使用してアプリケーションを更新するだけでしょうか? または、ユーザーとデータベース サーバーの間にサーバー アプリケーションを作成して、クエリ自体を実行し、接続されている各ユーザーに更新されたデータを通知しますか?

4

2 に答える 2

1

データベースの変更についてリアルタイムでクライアントに通知することがどれほど重要かによって、すべてが異なります。クライアントが 1 ~ 2 分の遅延で問題を抱えていない場合は、おそらくタイマー アプローチを使用できます。しかし、データがリアルタイムであること (1 ~ 2 秒未満の遅延) が本当に必要な場合は、別の方法を使用してください。データベースをポーリングし、クライアント アプリケーションに更新を通知する別のサービスを作成します。これには、ソケットリスナーを利用できます。それが役立つことを願っています!!

于 2012-06-13T04:01:17.273 に答える
1

4ユーザー?ローカルLANで?単純なインデックス付きクエリを使用していますか? クライアントからDBをポーリングするだけです。アプリケーションの起動時にスレッドを開始し、2 ~ 5 秒ごとにクエリを実行してから、.NET で GUI を更新するバックグラウンド スレッドに適したものを使用してユーザーに通知します。

これは簡単です。考えすぎないでください。「最も難しい」部分は、ユーザーの非同期通知です (GUI レイアウトと必要なアクションによっては、おそらく大したことではないため、引用します)。

于 2012-06-13T04:12:01.483 に答える