我试图通过添加版本控制来为现有系统带来理智。问题是系统不能很好地转换为像布局这样的文件系统。经过几次思想实验后,我有了一种基本的方法来处理这个问题,但在我开始允许使用这个烂摊子之前,我想由集体来运行它。
该系统由类型化的对象和链接组成。对象通过链接表链接在一起以形成有意义的关系。链接也是类型化的对象,可以有自己的属性。
用户可以到达任何级别的对象视图,并沿着链接上下走动以查看关系。
大多数对象都有数百个到其他对象的链接。并非所有对象或链接都将受到版本控制,因为有些对象或链接可以被认为是静态的。允许有到非版本控制对象的版本控制链接。
对对象的更改以包含层次结构部分的整个布局的批处理形式到达,本身没有或很少有用户评论或版本信息。因此,通过将新对象与前一个对象进行比较来检测变化。也以这种方式检测链接更改。对象可以在一个版本中添加,在下一个版本中删除,并在下一个版本中再次添加。大多数物体都有足够的独特信息来检测这确实是同一个物体,它正在突然出现和消失。
未更改的对象和链接不应为单个对象创建新版本,但批量更新产生的整体内容仍应可识别为一个组。
95% 的用户只会对最新版本的对象/关系感兴趣,但我需要能够显示剩余 5% 的先前提交的对象/关系。
我最初的想法是为这批更改实现一个整体版本 uid,并将其与该迭代的所有当前对象/链接相关联。剩下的就等着拿了。如果你做到了这一步,谢谢你。想法?