我有一个数据图表,我使用多个REST调用从OAuth源中提取并在数据库中以关系方式存储。数据结构最终具有大约5-10个表,具有多个一对多关系。我想定期重新检索该信息,以查看我的数据库中是否需要更新。
由于我将为许多用户执行此操作,并且他们的数据可能不会经常更改,我的目标是不必要地最小化数据库上的负载。我的策略是从我的OAuth提供程序查询数据,然后对结果进行哈希处理,并将其与我为同一数据集生成的最后一个哈希值进行比较。如果哈希值不匹配,那么我只需在数据库中启动一个事务,吹掉该用户的所有数据,重新写入数据,然后关闭事务。这节省了我从数据库中读取数据并进行所有比较工作以查看更改内容,添加了哪些行,删除更改等的时间。
所以我的问题是:如果我将所有数据作为一个大字符串粘贴在内存中并使用C#GetHasCode(),那么检查我的数据是否已经更改是相当可靠的机制吗?或者,有没有更好的技术来剥皮这只猫?
由于
答案 0 :(得分:0)
是的,这是一种检测变化的可靠机制。我不知道GetHashCode()方法中碰撞的可能性,但我认为它是安全的。
更好的方法:数据是否具有每次更改时设置的版本标记或时间戳?