我需要使用neo4j的应用程序的审计功能,类似于Hibernate Envers。我还没有找到现有的解决方案,所以我很好奇如何实现我自己的解决方案。使用neo4j审核:使用哪种方法?
我打算使用lifecycle event生成一个旧版本的节点并将其存储到数据库中(关系计划在此时保持不变,因此只需要跟踪节点更改)。
我想知道哪种方法比较好:自定义类型的
- 生成节点和保存有关更改的信息(谁做出更改的用户ID,日期&时间的变化,节点的ID改变的节点的旧状态)到这些节点中。例如,对于用户更改他的名字像这样将生成:
(:Audit:{userID:"001", timeInMillis:"1471507577436", objectID:"4178a373-d6e0-434f-bc45-cf472c106f1a", oldState:"userID:001, firstName:John, secondName:Doe"})
- 保留旧版本的节点同类型的节点本身的,链接到节点本身,在那里以毫秒时间戳添加修订属性。
对于大型数据集,第一种方法可能会很慢,但实施起来更容易。我想知道哪里最好。