Đây là những đề xuất của tôi:
-
Nếu bạn có thể thêm bảng trùng lặp vào cơ sở dữ liệu thì đây là một giải pháp. Bạn có table1 của mình và table2 (Bản sao của table1 ). Khi bạn chèn bản ghi mới vào table1 , bạn có thể so sánh chúng với các bản ghi hiện có trong table2 của mình và do đó tìm thấy các bản ghi mới. Sau khi so sánh, bạn nên thêm tất cả các bản ghi mới vào table2 . Đây là một số loại đồng bộ hóa. Điều này có thể được thực hiện thông qua proc được lưu trữ hoặc theo chương trình.
-
Bạn không cần bất kỳ bảng nào khác. Bạn có thể lưu trữ tất cả dữ liệu của mình trong bộ nhớ cache của ứng dụng và kiểm tra trong một khoảng thời gian nào đó (ví dụ:5sec) có bất kỳ sự kiện mới nào không tồn tại trong bộ nhớ cache của bạn hay không. Nếu chúng không tồn tại - hãy thông báo cho chúng trong nhật ký của bạn hoặc một nơi nào khác và thêm chúng vào bộ nhớ cache. Nhưng nếu có quá nhiều bản ghi thì thời gian xử lý sẽ tăng lên rất nhiều + tốn bộ nhớ.
-
Nếu bạn có thể thay đổi db thì bạn có thể thêm một cái gì đó như cột 'isNew' vào bảng của mình. Khi một dữ liệu mới đến từ trang web, cột sẽ là 'true', chương trình của bạn có thể theo dõi điều này và sau khi xử lý, hãy đặt cờ này thành false cho mỗi bản ghi. (Nếu trang web không thể đặt cờ này, bạn có thể sử dụng SQL TRIGGER SAU KHI CHÈN để đặt giá trị cờ thành true. Trang web thậm chí không thể biết về tính năng này nếu đó là trang web của bên thứ ba hoặc bạn không muốn thay đổi bất kỳ điều gì ở đó)
-
Đây là bài viết về theo dõi thay đổi EF:http://blogs.msdn.com/b/adonet/archive/2009/06/10/poco-in-the-entity-framework-part-3-change-tracking-with- poco.aspx
Nhưng vấn đề là bạn nên kiểm tra toàn bộ bảng để tìm các thay đổi qua EF sẽ ảnh hưởng đến hiệu suất ứng dụng của bạn.
Dưới đây là thông tin hữu ích về khái niệm triển khai và theo dõi thay đổi phía SQL Server:http://www.mssqltips.com/sqlservertip/1819/using-change-tracking-in-sql-server-2008/http://msdn.microsoft. com / en-us / library / bb933994.aspx