簡體   English   中英

Neo4j關系設計

[英]Neo4j Relationship design

久違后重溫Neo4j。 我已經閱讀了很多文章,但是仍然發現我有一些問題可以讓我再次前進。

  1. 雙向關系我有一個“連接到”類型的場景,其中2個節點相互連接。 實際上,該想法是對一種流進行建模。 但是,雙向流動並不總是相同的。 我不確定要使用的最佳方法:1個具有2個屬性的關系或2個不同的關系?

前者感覺很舒適,但隨后在建模實際事實時就感覺不自然了-例如:該調用什么屬性,因為從每個節點的角度看,FlowIn和FlowOut毫無意義。 我還想知道在這種情況下屬性與關系的性能-這些值將需要更新。

  1. 表示時間現在,我想更進一步,表示在特定時間或更准確地說在特定時間之間節點之間的流。 因此,在下午2點到下午3點之間,#1和#2之間的流量為x。

應該如何以最佳方式完成此操作? 每個連接的每個時間范圍的關系似乎....冗長。 將時間范圍表示為節點是否有價值?

  1. 是否有Cypher外的最大流量樣品? 對推送重新標記最大流量問題的解決特別感興趣。

感謝您提供的任何建議。

盡管您已經對問題進行了一定的思考,但這個問題仍然不清楚。 這似乎是關於圖數據模型的問題。 您想知道如何最好地組織模型來表示復雜的關系。 如果要跟蹤兩個節點之間的“流”,則將權重屬性分配給單向邊。

雙向關系應仔細考慮。 Neo4j可以像處理單向關系一樣快地對其進行處理。 Graphaware中關於使用雙向關系的引文

Neo4j中的關系可以以相同的速度在兩個方向上遍歷。 而且,方向可以完全忽略。 因此,如果一個節點暗示另一個,則無需在節點之間創建兩個不同的關系。

我相信,通過更好地了解Graph數據模型可以緩解您的問題。 查看一些不同的模型並理解其原因,比此時理解密碼語法更有幫助。 可能我建議您閱讀本次調查由在智利大學教授2人名為“圖形數據庫模型的調查。” 您可能對第21頁的“超節點”模型特別感興趣,因為這聽起來像是您正在嘗試對復雜的循環對象建模。 從第二十一頁開始;

超節點可用於表示簡單(平面)和復雜對象(分層,復合和循環)以及映射和記錄。 一個關鍵功能是其固有的封裝信息的能力。

希望這些信息可以幫助您建立復雜的關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM