【发布时间】:2022-06-10 20:29:46
【问题描述】:
我的数据库中有一些资源被继承到它们的子资源。当我查询资源时,我还需要能够获取继承的资源。我有一个名为path 的字段,我打算使用它。 path 始终包含与我们当前正在处理的资源相关的所有资源的完整路径。
例子:
+-----------------------------------------+
| id | res_id | path |
|-----------------------------------------|
| 1 | res_1 | res_1 |
| 2 | res_1.1 | res_1.res_1.1 |
| 3 | res_1.2 | res_1.res_1.2 |
| 4 | res_1.1.1 | res_1.res_1.1.res_1.1.1|
+-----------------------------------------+
如果我查询res_1.1,我还必须得到res_1,因为它是res_1.1 的父级。如果我得到res_1.1.1,我还必须得到第1 行和第2 行,因为它们包含在res_1.1.1 的路径中。希望有一些建议如何使用 Postgres 做到这一点。如果这是重要信息,我还使用sqlmodel 编写查询。
【问题讨论】:
-
请始终声明您的 Postgres 版本。所以你的模型不是递归的?你真的以这种模棱两可的方式使用点(
.)吗?不能使用不同的分隔符吗?
标签: python sql postgresql pydantic sqlmodel