0

2つの異なるソースからのデータを比較する必要があります。

別のソースから、college_id、student_id、student_nameを取得する必要があり、データベースでそれらが最新であるかどうかを確認したいと思います。ソースは常に正確なデータを持っています。

1つの大学に複数の記録がある場合があります。

ログインするたびに、この情報をデータベースで最新の状態に保つ必要があります。どうすれば続行できますか?

削除と挿入のオプションは、私たちのチームでは推奨されていません。では、どのように比較しますか?

誰かがいくつかの効率的な擬似コードを提供できますか?ソース情報をJavaまたはリストの2次元配列に保存する必要がありますか?

レコードがソースには存在しないがデータベースには存在する場合は、DBからレコードを削除する必要があります。

レコードがソースに存在し、dbに存在しない場合は、dbに挿入する必要があります。

誰かがリストを使用するか、疑似コードで2次元配列を使用するかについての洞察を提供できるかどうかを評価してください。

ありがとう!

4

2 に答える 2

0

質問のほとんどの手順を概説しました。同期しているときはいつでも、次のことを行ってください。

  1. データベースから持っているデータを取得します
  2. 正規ソースのデータと比較する
  3. データの比較に基づいて、データベースで適切なアクションを実行します。
    • レコードがない場合は、新しいレコードを挿入します
    • データが更新されたら記録を更新する
    • レコードのタイムスタンプを更新して、いつ更新したかがわかるようにする
  4. 最後のステップで、タイムスタンプに基づいて「最近」更新されていないすべてのレコードをデータベースから削除します
于 2012-01-05T20:21:21.203 に答える
0

基本的に、あなたはする必要があります

  1. データベースからすべてのレコードをロードする
  2. 信頼できるソースからすべてのレコードをロードする
  3. 信頼できるソースに存在しない DB 内のすべてのレコードを検索します。それらを削除します。
  4. DB にない信頼できるソースのすべてのレコードを検索します。それらを追加します。
  5. すべての変更レコードを見つけます。それらを更新します。

問題は、レコードの主キーを指定していないことです。そのため、#5 は無関係かもしれません。

他のすべての場合、レコードをカプセル化し、equals()andメソッドを (適切に!) 実装するクラスと、 andメソッドhashCode()の知識を備えた 2 つのコレクションが必要です。removeAll()retainAll()

それが役立つことを願っています。

PS。たとえば、データセット全体を埋めるのに十分なエモリーがない場合など、これを段階的に行うことは実際に可能です。この場合、同値関係に準拠した順序で順序付けされたレコードを読み取る機能が必要になります。

于 2012-01-05T20:21:54.210 に答える