Ето моите предложения:
-
Ако можете да добавите дублирана таблица към базата данни, ето решение. Имате своята таблица1 итаблица2 (Копие на таблица1 ). Когато вмъквате нови записи в таблица1 , можете да ги сравните със съществуващите записи във вашата таблица2 и по този начин намирам нови записи. След сравняването трябва да добавите всички нови записи към таблица2 . Това е някакъв вид синхронизация. Това може да се направи чрез запаметена процедура или програмно.
-
Нямате нужда от други маси. Можете да съхранявате всичките си данни в кеша на приложението си и да проверите с известен период от време (например 5 секунди) има ли нови събития, които не съществуват във вашия кеш. Ако не съществуват - уведомете ги във вашия дневник или някъде другаде и ги добавете в кеша. Но ако има твърде много записи, времето за обработка ще се увеличи значително + консумацията на памет.
-
Ако можете да промените db, тогава можете да добавите нещо като колона "isNew" към вашата таблица. Когато нови данни дойдат от уебсайта, колоната ще бъде 'true', вашата програма може да проследи това и след обработка задайте този флаг на false за всеки запис. (Ако уебсайтът не може да зададе този флаг, можете да използвате SQL TRIGGER AFTER INSERT за да зададете стойността на флага на true. Уебсайтът дори не може да знае за тази функция, ако е уеб сайт на трета страна или не искате да променяте нищо там)
-
Ето статия за проследяването на промените в 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