1

我有一张数据图,我使用多个 REST 调用从 OAuth 源中提取数据,并将其以关系方式存储在数据库中。数据结构最终有大约 5-10 个表,其中包含多个一对多关系。我想定期重新检索该信息,以查看我的数据库中是否需要更新。

由于我将为许多用户执行此操作,并且他们的数据可能不会经常更改,因此我的目标是尽量减少不必要的数据库负载。我的策略是从我的 OAuth 提供程序查询数据,然后对结果进行哈希处理并将其与我为同一数据集生成的最后一个哈希值进行比较。如果哈希不匹配,那么我只需在数据库中启动一个事务,删除该用户的所有数据,重新写入数据,然后关闭事务。这节省了我从数据库中读取数据并进行所有比较工作以查看发生了什么变化、添加了哪些行、删除了哪些行等的时间。

所以我的问题是:如果我将所有数据作为一个大字符串在内存中粘合在一起并使用 C# GetHasCode(),那么检查我的数据是否已更改的机制是否相当可靠?或者,有没有更好的方法给这只猫剥皮?

谢谢

4

1 回答 1

0

是的,这是一种相当可靠的检测变化的机制。我不知道 GetHashCode() 方法中发生冲突的概率,但我认为它是安全的。

更好的方法:数据不能在每次发生变化时都设置版本标记或时间戳吗?

于 2010-12-01T18:30:23.150 回答