SQLAlchemy支持“闭包表”吗?

6 投票
1 回答
1047 浏览
提问于 2025-04-17 01:44

我最近在了解闭包表,这是一种在SQL中建模层级结构的方法。

[SQLAlchemy]有没有内置的功能,可以用闭包表来创建和遍历对象实例的层级集合(树状结构的集合)呢?

1 个回答

7

我最近在我的博客上写过这个话题。

大体上来说,sqlalchemy并没有做什么SQL做不到的事情;它主要是提供了一些方法来生成SQL语句,并把结果转换成好用的Python对象。

如果你的数据库有一些处理递归关系的有用工具,比如CONNECT BY或者WITH RECURSIVE这样的功能,那么sqlalchemy可以很容易地调整,让这些查询结果变成可以选择和映射的Python对象。

在我提到的那篇文章中,我需要在MySQL上实现一个读写的部分顺序,但MySQL在SQL层面上并没有提供对递归数据结构的支持。我想出的解决方案创建了一个类似于sqlalchemy风格的属性,这个属性在后台保持了传递闭包的不变性。

撰写回答