データ バックエンドが MySQL データベースであるデスクトップ python アプリケーションがありますが、以前のデータベースはネットワーク アクセスされた xml ファイルでした。xml を利用していたときは、アプリケーションの起動時にスレッドが生成され、xml ファイルの変更を単純にチェックし、変更された日付が (ユーザーが更新したために) 変更されるたびに、アプリが更新され、複数のユーザーがビジネスを進めながら、アプリの変更を使用して確認することができました。
現在、このプログラムは成熟しており、どこでも使用できるようにオンライン プレゼンスに向けて進んでいます。Xml は窓の外にあり、データベース アクセス方法として SQLAlchemy で MySQL を使用しています。ただし、情報が 1 つの xml ファイルに格納されるのではなく、SQL データベース内の複数のテーブルに分割されるため、プロットが濃くなります。これは、ある種の「最後に変更された」テーブル値または構造の考え方を複雑にします。したがって、問題は、データが変更され、アプリを更新する必要があることをユーザーにどのように通知するかということです。ここに私の考えのいくつかがあります:
- 各テーブルには最後に変更された列が必要です (これは最悪のオプションのようです)
- 最後に変更された列を保持する別のテーブル?
- サーバーを介したある種のプッシュ通知?
- おそらくアプリが接続できるSQLデータベースをホストしている同じサーバー上で非常に小さなpythonスクリプトを実行する機能があり、(ソケットを介して?)接続されているすべてのクライアントとの間で情報をやり取りできることを言及する必要がありますか?
追加情報:
- やり取りされる情報は、かなり低帯域幅です。一部の画像の可能性を伴う大部分のテキスト (50k を超えることはめったにありません)。
- 現在のクライアント数は非常に少なく、数十です。しかし、このプロジェクトは、クライアント数が数百に達する可能性のある大企業によって採用される可能性があります。それでも、近い将来、帯域幅が問題になることはありません。
とにかく、私にとっては少し新しい領域なので、どうしますか? 前もって感謝します!