与高效利用差异的版本控制数据库
-
09-09-2019 - |
题
我有涉及网络投票系统的项目。当前值和相关的数据存储在多个表中。历史数据是该项目的一个重要方面,所以我还创建了审计表到当前的数据将被移动到定期。
我发现这个策略非常低效。即使我只是每天的基础上归档数据,行的数目将变得巨大,即使只有1或2个用户就在某一天更新。
下一个替换我能想到的是仅存储已更改的条目。这将意味着不必建立逻辑自动创建一个给定的一天中的视图。这意味着更少的存储行,但相当大的复杂度。
我的最终的想法是有点不太常规的。由于历史数据将会是报告的目的,没有必要为互联网用户快速访问。我在想,我的数据库可能在它的历史数据。 DB仅代表当前状态。然后,每日,整个分贝可以被装载到对象(用户数/数据是相对低的),然后序列化到像XML或JSON。这些文件可以与前一天进行显示差异和存储。事实上,SVN能为我做到这一点。当我想为一个给定的过去一天的数据,该系统具有检索版本的那一天和反序列化为对象。这显然是一个代价高昂的操作,但表现与其说这里关注的问题。我使用LINQ此,我认为会简化事情考虑。序列化的过程必须是非常有组织的差异很好地工作。
你会采取哪种方式?
由于
其他提示
你有没有使用真正的版本控制系统,而不是试图鞋拔子在其位置数据库的考虑?我本人相当部分与git,但也有很多选择。他们都对版本之间的差异很好的支持,他们往往对这种工作量可以很好的优化。
不隶属于 StackOverflow