2012-03-10 69 views
0

我们正在开发基于SAAS的应用程序。其中一个要求是记录数据库表中的每个变更,即创建基于日期/时间的数据版本。客户端应该能够恢复到任何版本的数据。日期版本控制和恢复

我在数据库几乎30的表,和数据插入频率是80000个记录添加/通过批量导入每天更新。但是,客户端也可以使用GUI通过表单插入数据(批量导入除外)。

创建任何策略都实行这一要求之前,我很想对如何实现这个您的意见/建议。

在一个侧面说明,我已经审核this blog post,发现它非常好的起点,但我仍然怀疑有关如何恢复以前的数据。

数据库快照是一种很有前途的解决方案,但正如我刚才所说,这是一个基于SaaS的应用程序,我们都在一个数据库中存储多个客户的数据和快照将恢复为其他客户的数据也是如此。

请提出有关如何执行此要求的任何策略/计划。

回答

0

如果你打算使用JPA/Hibernate来获取你的数据,你可以给Envers一个镜头。

Envers是维护数据库实体版本的JBoss的开源项目。您可以使用@Audited注释标记整个表中的某些列,以开始跟踪审核历史记录。它通常将所有审计数据以_AUDIT名称存储在一个表中。它还提供API来查询历史数据。

详情请到通http://www.jboss.org/envers

+0

我们计划移动到Spring框架,所以我想我们会使用Hibernate作为ORM。我们主要关注的是关联表中的大量数据,我们也必须进行版本化。其次,将数据恢复到任何版本。 – Saqib 2012-03-21 06:23:37