我需要使用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"})
- 保留舊版本的節點同類型的節點本身的,鏈接到節點本身,在那裏以毫秒時間戳添加修訂屬性。
對於大型數據集,第一種方法可能會很慢,但實施起來更容易。我想知道哪裏最好。