使用关系模式表示网络

时间:2014-03-05 09:54:58

标签: sql graph nosql

我想使用关系架构来表示网络。

我网络的实体是:

  1. 节点:网络上的一个点。
  2. Arc :2个节点之间的直接连接
  3. 路径:有序的弧线序列。
  4. 关系模型是否适合代表这样的网络?

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

1 个答案:

答案 0 :(得分:1)

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

但是当你想在SQL中做到这一点时,Node(或图论中的Vertex)和Arc(正确称为Edge)都会得到一个自己的表。 Vertex只包含有关顶点本身的数据,而不包含与其他人的关系的信息。 Edge将包含它链接的两个节点的主键,以及有关链接本身的任何元信息。

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