gpt4 book ai didi

sql - 如何检查两个节点之间是否存在路径 - SQL

转载 作者:行者123 更新时间:2023-11-29 13:59:01 25 4
gpt4 key购买 nike

我有数据库:

Node(nno,color) 
edge(eno,head,tail,weight,gno)
graph(gno,gname)

enter image description here

这里的粗体代表主键图形是有向的:head -> tail

我如何构建一个触发器来检查每次向图中插入一个节点时,该图是否连通?意味着每两个节点之间有一条路径我什至如何检查每两个节点之间是否存在路径?

我正在使用 postgreSQL

最佳答案

这是一个 X-Y 问题,使用触发器很可能无法解决:如果要使用外键维护参照完整性(绝对可取),那么根据定义,插入节点将创建一个断开连接的图,并被拒绝。

解决方案是有一个存储过程,通过它传递对所有三个表的所有插入,并且只接受连接图添加。

假设给定图已经连接,那么要接受给定图的扩展,扩展中的每个节点都连接到现有图中的任何一个节点就足够了。

关于sql - 如何检查两个节点之间是否存在路径 - SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24931595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com