0

例として、コンピューター A に元のデータベースがあり、コンピューター B が対象となり、そのデータベースを受信するように設定されている場合、B はローカルの postgresql サーバーにデータを保存 (キャッシュ) しますか、それともソースから継続的にデータを取得しますか? この質問の目的は、そのような接続を構成すると、データ転送速度が失われ、インターネット接続に永久に依存することになることを知ることです。ERP と POS のリモート関係のための優れたフレームワークを確立するための提案も大歓迎です。前もって感謝します。

4

1 に答える 1

1

これは完全にクライアントに依存します。私が知っている PostgreSQL 用のクライアント ライブラリはどれも、クエリ結果のキャッシュを行いません。Ruby gem libpq、Perl psqlODBC、または Python の.pgJDBCPgDBD::Pgpsycopg2

Ruby ActiveRecord、Hibernate/EclipseLink、およびその他の JPA 実装など、いくつかの高レベルの抽象化と ORM システムはキャッシュを行います。このキャッシュは、オフラインでクエリを満たすことはめったにありません。通常は、オブジェクト ID を確認した後に、変更されていないオブジェクトデータの再フェッチを減らすためです。結果セットにあります。

オフライン データベースが必要な場合は、非同期マルチマスター レプリケーションまたはアプリケーション層の同期と競合解決アルゴリズムが必要です。後者を強くお勧めします。非同期マルチマスター レプリケーションは素晴らしいように思えますが、実際には、特に予測できない切断期間がある場合は、まったくひどいものです。アプリは変更のログを保持し、中央サーバーと通信して一連の変更を交換する必要があります。競合を処理するには、非常に慎重に計画する必要があります。金融アプリケーションのためにこれを DIY しようとすることはお勧めしません。

このトピックについては多くの文献があり、多くの記事が書かれています。車輪を再発明するのではなく、そこにあるものを読み始めてください。たとえば、モバイル アプリでローカル SQLite データベースとの間で同期を使用する方法については、かなりの情報が見つかります。

于 2013-04-01T07:00:10.467 に答える