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