2

非常に複雑であると思われる質問があり、あなたのような専門家が私の解決策についてどのように考えているかを知りたい.

問題:

多数のサードパーティから中央の mySQL データベースにデータを収集しています。サードパーティは、任意のデータベース製品 (mySQL、Oracle、postgreSQL など) を持つことができます。次の 2 つのタスクを実行する必要があります。

  1. 最初の起動時に、完全なデータベースを中央の mySQL データベースに複製します
  2. サードパーティのデータベースに変更が加えられると、中央の mySQL データベースを段階的に更新します

提案された解決策:

  1. サードパーティのデータベースごとに C# でデータベース クローラーを作成するつもりです。たとえば、サードパーティの 1 つが Oracle データベースを持っているとします。私は、その定義とデータについてOracleデータベースにクエリを実行し、中央のmySQLデータベースによって実行されるSQLクエリをプログラムで作成するクラスを作成するつもりです。例: テーブル XYZ の作成 (id1 int、id2 int)、XYZ 値 (1,2) への挿入など。
  2. ここに私に最大の悲しみを与えている問題があります。データベースにクエリを実行して、「最新の変更は何ですか」、または dd-mm-yyyy hh:MM:ss 以降の変更を効果的に尋ねたことがあるかどうかを知りたいです。変更とは、データの変更とデータ定義の変更の両方を意味します。例: 新しい列の追加、[行][列] の値の更新、新しい行の挿入など。
4

1 に答える 1

0

データベース ライター プログラムにアクセスできる場合は、中央データベース (別名 LOGGER) にデータを生成/書き込むコードを挿入することはできませんか?

つまり、中央データベースを「LOGGING データベース」として作成できるということです。何らかの理由で 3 番目の部分のデータベースでデータベースのロールバックが必要な場合は、コマンドを現在のタイムスタンプからタイムスタンプ-ロールバック日まで取得し、INSERT から DELETE、DELETE から INSERT などに変更できます。

そうすれば、DB全体を複製するため、データベースはそれほど苦しむことはありません:)

于 2012-11-12T13:48:01.673 に答える