2014-03-05 32 views
1

我想使用关系模式来表示网络。使用关系模式表示网络

我的网络的实体是:

  1. 节点:网络上的一个点。
  2. :弧的有序序列:2个节点
  3. 路径之间的直接连接。

是一个适合表示这样的网络的关系模型吗?

我正在考虑SQL/No SQL作为选项。我的数据量不会以非常快的速度增长。我不想根据任何预定义的查询模式选择SQL/No SQL。

回答

1

通常表示网络的最佳工具是像Neo4j这样的图形数据库。

但是,当你想在SQL中完成它时,节点(或者图论中的Vertex)和Arc(正确地称为Edge)会得到一个表。 A Vertex将仅包含关于顶点本身的数据,并且不包含关于其与其他关系的信息。 Edge将包含它链接的两个节点的主键,以及关于链接本身的任何元信息。

当您需要存储多个节点的路径时,您应该使用两个表。 A Path表中包含path-id和有关整个路径的任何数据,另一个表PathVertex由Path-ID,该路径中的数字和Edge表的主键组成,其中包含路径组成的所有位置。