3

可能であれば、ローカル バージョンでアクションが実行されたときにグローバル データベースでも実行されるように、ローカル データベースをグローバル データベースと効果的に同期するにはどうすればよいでしょうか。データベースに変更を加える人の数に応じて、データベースのローカル コピーが複数存在する可能性があるため、単純にバージョン管理を使用してグローバルを破壊することは受け入れられません。つまり、データベースのミラーを作成して、ネットワーク上の別の場所にある場合でもローカルにアクセスできるようにすることは可能です。

4

1 に答える 1

4

非常に複雑なトピックの場合のデータベースの同期。最も簡単な方法は、各システムに対して実行されるすべてのクエリのアプリケーション レベルで (またはカスタム sqlite ラッパーを介して) 記録を保持し、同期時にそれらを再度実行することです。

これは、複数のソースまたは双方向の同期がある場合に問題になります。あるデータベースで正常に実行されたクエリが、操作の順序が異なるため、別のデータベースでは失敗する場合があります (参照整合性が有効になっている場合)。

もう 1 つのより複雑ですが堅牢なアプローチは、各テーブルの完全なトランザクション履歴を追跡することです。また、各トランザクションで影響を受けたレコードと、各トランザクション内の順序を知る必要があります。それが完了したら、問題がいつ発生するかを検出し、自動的に回避する方法が必要になるでしょう。

于 2010-07-20T16:22:41.337 に答える