首页 > 解决方案 > 多个间接关系的 SQL 查询

问题描述

我有一个关于是否可以仅使用 SQL 从 SQL 数据库中提取间接关系信息的问题。

我正在使用的建模工具基于一个基本上只有两个表的 SQL 数据库:元素和关系。表定义如下

Elements:
id, type, name

Relations:
id, type, name, source, target

元素只是具有系统生成的唯一 ID 的实体列表,而关系(也具有唯一 ID)使用元素的唯一 ID 在“源”和“目标”列中定义它们之间的关系。

我想弄清楚的是:对于模型中的任何两个元素,例如 A 和 D,或 A 和 E,在下图中 - 它们是否链接,如果是,如何链接 - 包括通过其他元素的多个间接关系?

示例模型

我知道我可以通过编写一些程序代码来解决这个问题,这些程序代码递归地搜索关系表,详尽地检查 A 和 D(或 E)之间的每个关系。但这并不容易编码。

所以我想知道是否有人可以指出这个问题的最佳解决方案?具体来说,是否有针对此问题的纯 SQL 解决方案,或者我是否必须编写一些程序代码?

有问题的 SQL DB 是支持Archi建模工具的 alaSQL 。但我也对其他解决方案感兴趣,因为将数据泵入新的 DBMS 不是问题。

谢谢。

标签: sqldata-modelingalasql

解决方案


推荐阅读