如何在数据库中存储依赖树?

sza*_*gab 5 sql database postgresql dependencies database-design

我正在尝试在 PostgreSQL 数据库中存储依赖树。大约有 20,000 个软件项目,每个项目都可以依赖于其他几个项目。

有多种类型的依赖关系(一些是运行时依赖关系,一些是构建时依赖关系,一些是测试依赖关系)。

依赖关系是递归的,每个项目只知道它直接依赖的事物。

我需要列出项目的所有依赖项,并将它们显示为树和扁平列表。我还需要回答“这取决于什么?”

存储这些信息以使获取相对容易的推荐方式是什么?

Pau*_*tos 0

我将实现一个简单的多对多自动关系。

像这样的东西:

 Software                Dependency
+------------+          +-----------------------+
| SoftwareId |          | SoftwareId            |
+------------+         /| DependsUponSoftwareId |
| Name       |--------|-+-----------------------+
| ...        |         \| ...                   |
+------------+          +-----------------------+ 
Run Code Online (Sandbox Code Playgroud)