これが私の提案です:
-
重複するテーブルをデータベースに追加できる場合は、ここに解決策があります。 table1があります およびtable2 ( table1のコピー )。 table1に新しいレコードを挿入するとき 、 table2の既存のレコードと比較できます したがって、新しいレコードを見つけます。比較した後、すべての新しいレコードを table2に追加する必要があります 。これはある種の同期です。これは、ストアドプロシージャを介して、またはプログラムで作成できます。
-
他のテーブルは必要ありません。すべてのデータをアプリのキャッシュに保存し、一定期間(たとえば、5秒)キャッシュに存在しない新しいイベントがないかどうかを確認できます。それらが存在しない場合は、ログまたは他の場所で通知し、キャッシュに追加します。ただし、レコードが多すぎると、処理時間が大幅に増加し、メモリ消費量が増加します。
-
dbを変更できる場合は、「isNew」列のようなものをテーブルに追加できます。 Webサイトから新しいデータが取得されると、列は「true」になり、プログラムはこれを追跡できます。処理後、各レコードに対してこのフラグをfalseに設定します。 (Webサイトでこのフラグを設定できない場合は、 SQL TRIGGER AFTER INSERTを使用できます。 フラグ値をtrueに設定します。サードパーティのWebサイトである場合、またはそこで何も変更したくない場合、Webサイトはこの機能についてさえ知ることができません)
-
EF変更の追跡に関する記事は次のとおりです:http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with- poco.aspx
ただし、問題は、アプリのパフォーマンスに影響を与えるEFを介した変更についてテーブル全体をチェックする必要があることです。
SQL Server側の変更の追跡と実装の概念に関する有用な情報は次のとおりです:http://www.mssqltips.com/sqlservertip/1819/using-change-tracking-in-sql-server-2008/http://msdn.microsoft。 com / en-us / library / bb933994.aspx