1

我对 OrientDB 中的边缘和链接有概念上的困难。

我有一个表示网络中链路层和互联网层的图表。link_layer EXTENDS V节点对应MAC地址,net_layer EXTENDS V节点对应IP地址。

两个地址之间的通信关系由边缘类 conx EXTENDS E 表示。将有两个单独的 conx 边缘表示相同的连接:连接 MAC A 到 MAC B 的 conx 1 和连接 IP a 到 IP b 的 conx 2 表示相同的连接。这将创建一个图,该图被划分为两个不交互的独立子图(没有 MAC 到 IP 边)

现在我需要一些方法将这两个图关联在一起。我想用链接关系连接边缘。每条边都可以有一个 LINKLIST 属性,该属性标识该边在不同层中相同的所有其他边(比如我稍后添加 TCP/应用程序层,这将是一个 n 对 n 关系)

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

对于广泛的问题,我很抱歉,但我一般只是对如何以及为什么使用引用关系以及使用它们连接两个否则未连接的图中的边是否有效感到困惑。

4

1 回答 1

2

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

通常: 一条边 定义两个顶点之间的关系。例如,您定义了两个顶点,Person 和 Car。然后定义一个边缘驱动器。这条边将两个顶点联系在一起。“简”驾驶“福特”。

而:链接列表是与另一个类关联的类的列表。Car 类可能具有来自 Part 类的部件的 Linklist。一辆车由多个部分组成。

边/链接不应该被用来相互建立关系,例如:边到边,如果你有这种情况意味着图有问题的概念设计。

于 2016-06-13T08:22:53.053 回答