如何在OrientDB中的Graph API中重新链接?

时间:2016-06-08 17:46:11

标签: orientdb orientdb-2.1

我对OrientDB中的边和链接存在概念上的困难。

我有一个代表网络中链路层和互联网层的图表。 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 / Application层,这将是一个n对n的关系)

到目前为止一切顺利。这些链接如何影响图表? OrientDB文档说"使用Graph API,Edges用两个顶点上的两个链接表示,以处理双向关系。"如果然后尝试从图API中与此数据库交互,LINK或LINKLIST属性可以解释为边缘吗?你甚至可以在边缘和边缘之间建立链接吗?理想情况下,它不会影响图形遍历...我希望能够分别从网络层运行图形分析网络的链接层使用。

对于广泛的问题感到抱歉,但我一般只是对使用引用关系的方式和原因感到困惑,如果使用它们连接两个未连接的图中的边是有效的。

1 个答案:

答案 0 :(得分:2)

通常,应设计图表以最好地表示所描述的场景。 因此,必须确定将由各种类别代表的实体。 每个类都将通过边缘或链接与另一个类建立关系。

一般: 边定义两个顶点之间的关系。例如,您定义两个顶点,Person和Car。然后定义边缘驱动器。该边缘将两个顶点连接在一起。 “简”推动“福特”。

虽然: 链接列表是与另一个类关联的类的列表。 Car类可能具有Part类中的部件Linklist。汽车由多个部分组成。

边缘/链接永远不应该用于彼此之间的关系,例如:边缘到边缘,如果你有这种情况意味着图形有问题 概念设计。