小编J14*_*146的帖子

SQL中的简单图搜索算法(PostgreSQL)

我在PostgreSQL(不是树)中实现了节点图

表格的结构采用这种格式

id | node1  | node2 
--------------------
1  |   1    |   2
2  |   1    |   3
3  |   4    |   1
4  |   5    |   1
5  |   1    |   6
Run Code Online (Sandbox Code Playgroud)

这显示了节点1与其连接的节点之间的关系.

我的问题

...是我需要一个函数或方法来在sql中查找特定的节点路径.

我想调用SELECT getGraphPath(startnode,targetnode)之类的函数,这将以任何形式显示路径(行或字符串)

例如SELECT getGraphPath(1,18)给出:

[1]-->[3]-->[17]-->[18]
[1]-->[4]-->[10]-->[18]
Run Code Online (Sandbox Code Playgroud)

甚至是行:

Result  |
--------
1
3
17
18
Run Code Online (Sandbox Code Playgroud)

我还想知道如何使用广度优先搜索和深度优先搜索来遍历图形.

sql postgresql traversal graph path

12
推荐指数
2
解决办法
7166
查看次数

标签 统计

graph ×1

path ×1

postgresql ×1

sql ×1

traversal ×1