Сравнение графиков данных с использованием C # GetHashCode () - PullRequest
1 голос
/ 01 декабря 2010

У меня есть график данных, которые я извлекаю из источника OAuth, используя несколько вызовов REST и храня реляционно в базе данных. Структура данных в итоге имеет около 5-10 таблиц с несколькими взаимосвязями «один ко многим». Я хотел бы периодически проводить повторное извлечение этой информации, чтобы увидеть, необходимы ли обновления в моей базе данных.

Так как я собираюсь делать это для многих пользователей, и их данные, вероятно, будут меняться не очень часто, моя цель - излишне минимизировать нагрузку на мою базу данных. Моя стратегия - запрашивать данные у моего поставщика OAuth, но затем хэшировать результаты и сравнивать их с последним хешем, который я сгенерировал для того же набора данных. Если хэши не совпадают, то я просто запустил бы транзакцию в базе данных, удалил все данные для этого пользователя, переписал бы данные и закрыл транзакцию. Это экономит мое время на чтение данных из базы данных и выполнение всей работы по сравнению, чтобы увидеть, что изменилось, какие строки были добавлены, удалены изменены и т. Д.

Итак, мой вопрос: если я склеиваю все свои данные в памяти как большую строку и использую C # GetHasCode (), это достаточно надежный механизм, чтобы проверить, изменились ли мои данные? Или есть ли лучшие методы снятия шкуры с этой кошки?

Спасибо

1 Ответ

0 голосов
/ 01 декабря 2010

Да, это довольно надежный механизм для обнаружения изменений.Я не знаю о вероятности коллизий в методе GetHashCode (), но я бы предположил, что это безопасно.

Лучшие методы: не могут ли данные иметь штамп версии или установленную метку временикаждый раз что-то меняется?

...