2

PC-a と PC-b の 2 台があり、どちらにも同じアプリケーションがインストールされており、Java db サポートがインストールされています。時々、PC-a のデータベースからデータベースにデータをコピーし、逆もまた同様で、2 台の PC が常に同じデータを持つようにします。このためのデータベースレイヤーに既に実装されている API はありますか (つまり、1.export-backup データベースを PC-a から 2.import-merge データベースを PC-b に)、または SQL レイヤーでこれを (手動で) 行う必要がありますか?

4

4 に答える 4

2

データベースを「マージ」したいというコメントで述べたように、おそらく競合が発生する可能性があるため、これを行うにはカスタムコードを記述する必要があるように思えます-両方で同じキーですが、それに対して異なる詳細があります。例。

于 2008-11-17T12:51:49.530 に答える
1

要するに:あなたはあなたの側でいくつかの仕事なしでこれを行うことはできません。SalesLogixは、すべてにサイトコードを与えることでこの問題を修正したので、テーブルは次のようになります。

Customer: 
   SiteCode varchar,
   CustomerID varchar, 
   .... 
   primary key(siteCode, CustomerID) 

したがって、データベースを取得し、各レコードを主キーで照合します。競合がある場合は、どのデータが異なっていたかについて、エンドユーザーにレポートを提供する必要があります。

machine1と言います:

   SiteCode|CustomerID|CustName     |phone         |email 
 1 XXX     |0001      |Customer1    |555.555.1212  |darth@example.com

およびmachine2:

   SiteCode|CustomerID|CustName     |phone         |email 
 2 XXY     |0001      |customer2    |555.555.1213  |darth@nowhere.com 
 3 XXX     |0001      |customer1    |555.555.1212  |darth@nowhere.com

解決を実行する場合:

  • PKは一致するが、データは一致しないため、レコード1と3は競合しています(電子メールは異なります)。
  • レコード2は一意であり、両方のデータベースに自由に存在できます。

エラーやデータの破損、参照整合性の問題なしにこれを自動的に行う方法はありません。

于 2009-08-05T19:50:19.333 に答える
1

Java DB (別名 Derby)を使用していると思います。その場合、単一のインスタンスを使用できないと仮定すると、バックアップ/復元を実行できます。

于 2008-11-11T12:02:44.693 に答える
1

1台のPCにデータベースを持っていないのはなぜですか。ホストPCからの他のすべてのPCの要求データを持っています

于 2008-11-11T16:39:16.290 に答える