1

いくつかの REST 呼び出しを使用して OAuth ソースから取得し、データベースにリレーショナルに格納するデータのグラフがあります。データ構造には、いくつかの一対多の関係を持つ約 5 ~ 10 個のテーブルが含まれます。データベースに更新が必要かどうかを確認するために、定期的にその情報を再取得したいと考えています。

多くのユーザーに対してこれを行う予定であり、そのデータは頻繁には変更されない可能性が高いため、私の目標は、データベースへの不必要な負荷を最小限に抑えることです。私の戦略は、OAuth プロバイダーからデータを照会し、結果をハッシュして、同じデータセットに対して生成した最後のハッシュと比較することです。ハッシュが一致しない場合は、単純にデータベースでトランザクションを開始し、そのユーザーのすべてのデータを吹き飛ばし、データを書き直して、トランザクションを閉じます。これにより、データベースからデータを読み込み、すべての比較作業を行って、何が変更され、どの行が追加され、どの行が削除され、変更されたかなどを確認する時間を節約できます。

私の質問: すべてのデータをメモリ内で大きな文字列として結合し、C# GetHasCode() を使用する場合、データが変更されたかどうかを確認するためのかなり信頼できるメカニズムはありますか? または、この猫の皮を剥ぐためのより良いテクニックはありますか?

ありがとう

4

1 に答える 1

0

はい、これは変更を検出するためのかなり信頼できるメカニズムです。GetHashCode() メソッドでの衝突の確率についてはわかりませんが、安全だと思います。

より良い方法: 何かが変更されるたびに設定されるバージョン スタンプまたはタイムスタンプをデータに含めることはできませんか?

于 2010-12-01T18:30:23.150 に答える