1
我們希望在我們的Java項目(JSF/EJB/JSF)實行「版本」功能。舉個例子:如何跟蹤/記錄的實體的版本變化
----- | A | ----- 1/\1 /\ */ \* ----- ----- | B | | C | ----- -----
上圖顯示了一個簡單對象的圖形化用3個對象即,A,B和C B和C「是部分」 A的,在A和/或任何改變B和/或C需要創建A的新版本
的問題是,如何實現它,無論是在Java端和數據庫端?
我們得到了2解決方案到目前爲止,並沒有解決尚未:
SolutionA:關於A的部分非常的變化會引起A的新的深克隆,這個克隆將通過JPA進行持久到數據庫一個新版本。優點:實現簡單,缺點:在Java方面和數據庫方面都有很多冗餘(考慮對象圖很大的情況)。
SolutionB:只能創建的變更部分在數據庫中。優點:無冗餘,數據庫性能可能會更好。缺點:這打破了對象圖,我們必須手動維護對象之間的關係/引用。可能會推動發展成爲一場噩夢。
有什麼想法?
如果這是一個版本的系統,應你的模型不能在更改,版本等來表達? – 2012-05-28 13:02:03
首先,考慮到正確的索引,解決方案A將具有更好的數據庫性能,因爲它不必在創建對象時解析關係。其次,版本控制的目的是什麼?比較差異?或只是爲了記錄保存? – Chao 2012-06-04 15:24:08