2015-12-22 89 views
1

我是Cypher的新手,試圖設計圖形數據庫並存儲用戶行爲。提前致謝!Neo4j/Cypher查詢(用戶行爲)關係方向

案例: 1.用戶訪問過的網頁 2.一種用戶所擁有的設備(ID:XXXXX)

在UML類圖中,箭頭(關係)被朝向父

類指向

enter image description here

但是,我的觀點,在Cypher支架並不是所有的關係是親子型,不是指我不應適用這種概念的成暗號?

所以,問題是「如何設計關係的方向」?

(user)-[r:visited]->(webpage {url:xxx}) 
(user)-[r:owned]->(mobileDevice {uuid:xxx}) 

- 或 -

(user)<-[r:visitedBy]-(webpage {url:xxx}) 
(user)<-[r:owned]-(mobileDevice {uuid:xxx}) 

再次

回答

2

謝謝這是一個常見的問題。答案是,這取決於你!關係類型可以是任何你選擇的,你應該選擇最舒適的方式。我會建議不管你做什麼,只要努力保持一致。

個人之間「visted」和「拜訪」,我會去「訪問」,因爲我認爲它是更有意義的是談論的事實,即用戶訪問的網頁,而不是一頁訪問用戶。我經常建議人們命名他們的關係,以便節點 - 關係 - 節點作出一個句子。由於用戶是主要角色,因此您的句子將是「(用戶訪問過的)網頁」。不過,這可能來自我作爲英語母語人士以及英語句子形成的方式。

作爲一個側面說明,Neo4j中的關係通常是UPPER_SNAKE_CASE。再次,Neo4j不會限制你從任何一種特定的風格,但這是我見過的最多。本指南提供了常見的Cypher公約的一個很好的概述:

http://nigelsmall.com/zen

+0

太謝謝你了 – Kevin