2011-08-10 14 views
1

DBFでいっぱいのディレクトリを持つVFPベースのアプリケーションがあります。このデータベースでトランザクションを接続して実行するには、.NETでODBCを使用します。このデータを自分のウェブホストで実行されているmySQLにミラーリングしたい。MySQLへの一方向データベースの同期

注:

  • これは一方向のミラーになります。 VFP to mySQL
  • インサートと更新のみがサポートされている必要があります。削除は関係ありません。
  • すべてのテーブルが必要というわけではありません。実際には、定義されたSELECT文を使用して、必要なデータの擬似ビューのみをミラー化することをお勧めします。
  • VFPレコードには "timemodified"スタンプがありません。
  • 私は大量のデータレコードを持っていません(おそらく数千もありません)。また、mySQL側で並行して大量のユーザーがいなくても、できるだけ効率的になりたいです。挿入のための戦略(悪いことを思えません...)提案

:MySQLで

  • ビルド一時テーブルを、私は
  • をミラーリングしたいVFPテーブル/ビューのすべての主キーを挿入
  • ランは
  • フェラ離れて一時テーブル
  • 01をそれらの記録のために必要なINSERTのSQLを生成して実行
  • 欠落しているレコードを識別するためのmySQL側「ではない(mirroredTableから主キーを選択します)にTEMPTABLEから主キーを選択します」

提案アップデートのための戦略(実際には、おそらくのMySQLのオープンクエリは、テーブルを落とし壊し、ヘビー級と思われる):MySQLで

  • ビルド一時テーブルと私は
  • をミラーリングしたいVFPテーブル/ビューからすべてのレコードを挿入
  • がドロップは、MySQLのテーブルにこれらがちょうど心に来る最初の戦略です新しいテーブル名

から

  • アルターTEMPTABLE名を既存の、私はシュルより効果的な方法(特に更新側)があります。

    私はここでいくつかの代替戦略を探しています。どんな素晴らしいアイデアですか?

  • 答えて

    1

    あなたは何か小さいもののように思えますが、いくつかのレプリケーションデザインパターンを見てみることもできます。 Microsoftはいくつかのデータ複製パターンhereを文書化しており、それは良い出発点です。私の提案は、単純なデータコピーの移動パターンをチェックすることです。

    1

    VFPテーブルはVFPデータベース(DBC)にありますか?もしそうなら、そのデータベースでトリガーを使用して、MySQLでどのデータを更新する必要があるかに関する情報を設定できるはずです。

    関連する問題