我有User
實體;用戶可以是多個組的成員並且是一個組織的成員。有幾個選項來處理這樣的關係:Spring數據neo4j:處理關係的正確方法?
- 類
User
有場Set<Group> groups
和Organization organization
- 類
Group
和Organization
具有領域Set<User> users
- 兩個選項同時使用(一種雙向關係)
另外,還有註明與指定方向的關係:
Spring Data Neo4j默認確保任何兩個給定實體之間只有一個給定類型的關係。此規則的例外情況是當關系在同一類型的兩個實體之間被指定爲OUTGOING或INCOMING時。在這種情況下,兩個實體之間可能有兩種給定類型的關係,一個關係在任一方向。
如果您不關心方向,那麼您可以指定 direction = Relationship.UNDIRECTED,這將保證兩個節點實體之間的路徑 可從任一側導航。
來源:Good Relationships: The Spring Data Neo4j Guide Book
只要我希望能夠得到的組內的用戶和用戶組一樣快,我可以,我完成了使用在上面列出兩個選項的方法同時以及註釋每個關係爲UNDIRECTED
,因爲它看起來像通用方法。它有什麼缺點嗎?如果是這樣,哪種方法會更好?