我很好奇,如果有任何解决方案,最好是免费的,可以有一个中央数据库以版本化的方式发布数据.
例如,
客户端1决定编辑个人资料,以便在其机器上获取本地副本以进行更改.当他们对编辑感到满意时,他们将结果发布到中央数据库.就像你将如何在perforce中进行提交.
客户端2尝试编辑相同的本地副本,但是当他们提交时,他们必须解决冲突.
中央数据库必须存储数据版本之间的压缩差异.
在任何时候,有人可以查看提交的数据的所有版本.
解决方法
“数据库的版本控制”对于标题来说有点不明确,因为您实际上是要求使用数据库作为存储库“数据存储”的VCS.
Subversion有这样一个模型(Berkeley DB or filesystem-based).
它也有一个Copy-Modify-Merge model,类似于你所描述的锁定机制.
alt text http://svnbook.red-bean.com/nightly/en/images/ch02dia4.png alt text http://svnbook.red-bean.com/nightly/en/images/ch02dia5.png