我建议将更改和历史记录保留在某种事件存储中。这可以是一个事件序列,每个事件都是不可变的,记录将仅追加。
这看起来像
VERTEX_CREATED(id: 1337, time: 1336624823)
VERTEX_CHANGED(field: foo, before: A, after: B, time: 133676328)
...
这样就可以从所需的任何位置重播历史记录,可以跳过条目以抑制发生的错误,依此类推。
如果将此类记录存储在表或图形中,则无关紧要。在图形内部,这可以是节点,其中每个节点在事件之前和之后都与事件相关联,例如链表。在表中,这只会是行。
如果您想更多地了解这种方法,我可以建议您使用Martin Fowler的Event Sourcing。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句