2012-03-10 99 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