我想使用关系架构来表示网络。
我网络的实体是:
关系模型是否适合代表这样的网络?
我正在考虑使用SQL / No SQL作为选项。 我的数据大小预计不会以非常快的速度增长。我不想根据任何预定义的查询模式选择SQL / No SQL。
答案 0 :(得分:1)
表示网络的最佳工具通常是像Neo4j这样的图形数据库。
但是当你想在SQL中做到这一点时,Node(或图论中的Vertex
)和Arc(正确称为Edge
)都会得到一个自己的表。 Vertex
只包含有关顶点本身的数据,而不包含与其他人的关系的信息。 Edge
将包含它链接的两个节点的主键,以及有关链接本身的任何元信息。
当您需要存储多个节点的路径时,您应该使用两个表。一个Path
表,其中包含path-id和整个路径的任何数据,另一个表PathVertex
包含路径ID,该路径中的数字和Edge
的主键包含路径所包含的所有位置的表。