2011-07-25 10 views
1

私はmysqlデータベースとそれに接続するアプリケーションを持っており、必要なテーブルをxmlにダンプし、そこからいくつかの情報をインポートしてからこの情報を処理します。データベースからダンプされたxmlファイルが最新であるかどうかを確認する方法は?

しかし、アプリケーションの起動中にこれらのxmlファイルを更新する必要があるかどうかを確認する方法はありません。

エントリの数が変更されたかどうかを確認することを考えましたが、誰かが既存のエントリを変更しても更新されません。毎回すべてのファイルを上書きし、再度インポートするには時間がかかります。 残念ながら、私はデータベースを変更して "最後の変更"情報を格納するフィールドを作成することはできません。

ご存知ですか?

答えて

1

変更/挿入トリガーを作成します。私はあなたがそれをすることができます。

http://dev.mysql.com/doc/refman/5.0/en/triggers.html

このトリガの目的は、あなたのテーブルが変更されたときに別のテーブルを更新することです。

+0

ありがとう、私はそれを調べます。 – Michal

0

どのようにデータベースを変更できませんか?その特定のテーブルがあなたに制限されていない場合は、新しいテーブルを(そのデータベースまたは別のもので)作成します。これは、再クエリする可能性のあるテーブルを参照する更新された情報を保持します。

は、私は頻繁に表にこれらの事実上の列があります。

  • InsertedDate
  • InsertedBy
  • UpdatedDate
  • UpdatedBy
  • Active

InsertedDateUpdatedDateの組み合わせを使用して、XMLを取り出す必要があるかどうかを確認できます。

もう1つの(醜いですが)オプションは、XML値のコピーを含む別の "追跡"テーブルを保持することです。そして、それらが同じか異なっているかを比較することができます。異なる場合は、最新のものを入手して使用し、トラッキングテーブルを更新してください。

+0

私の前で働いていた愚かな人がCRMソフトウェアを開発したので、データベース構造が変更されるたびにクラッシュするので、私はデータベースを変更できないと言った。 – Michal

関連する問題