2016-06-08 51 views
1

我在OrientDB中有邊和鏈接的概念上的困難。OrientDB中的Graph API中的鏈接如何被重新賦值?

我有一張圖表示網絡中的鏈接層和互聯網層。 link_layer EXTENDS V節點對應於MAC地址,net_layer EXTENDS V節點對應於IP地址。

兩個地址之間的通信關係由邊緣類conx EXTENDS E表示。將有兩個單獨的conx邊表示相同的連接:conx 1連接MAC A到MAC B,conx 2連接IP a到IP b表示相同的連接。這將創建一個被分成兩個獨立的子圖不交互(無MAC與IP邊緣)

現在我需要一些方法來將兩個圖關聯起來的圖形。我想用鏈接關係連接邊緣。每條邊都可以有一個LINKLIST屬性,用於標識該邊與其他層中相同的所有其他邊(例如,稍後將添加TCP /應用層,這將是n對n關係)

到目前爲止太好了。這些鏈接如何影響圖表? OrientDB文檔說:「使用圖形API,邊使用存儲在兩個頂點上的兩個鏈接來表示,以處理雙向關係。」如果然後嘗試從圖形API與該數據庫交互,LINK或LINKLIST屬性是否可以解釋爲邊緣?你甚至可以在邊緣和邊緣之間建立聯繫嗎?理想情況下,它不會影響圖遍歷...我希望能夠分析我的網絡的鏈路層使用情況與Internet層分開。

很抱歉的廣泛的問題,但我一般只是困惑如何以及爲什麼使用引用的關係,如果用它們來邊連接兩個本來沒有聯繫的圖形是有效的。

回答

2

一般而言,應該設計一個圖來最好地表示您描述的場景。 因此,識別將由各個類表示的實體是非常重要的。 每個班級將通過邊緣或鏈接與另一個班級建立關係。

一般: 邊緣定義兩個頂點之間的關係。例如,你定義了兩個頂點Person和Car。然後您定義一個邊緣驅動器。該邊將兩個頂點連接在一起。 「簡」驅動「福特」。

雖然: 甲鏈表是與另一個類相關聯的類的列表。一個Car類可能有一個Part類的Linklist。一輛汽車由多個部分組成。

永遠不應該使用邊緣/鏈接彼此之間的關係,例如:邊緣到邊緣,如果您有這種情況,則表示該圖形存在問題 概念設計。

相關問題