我一直在阅读关于闭包表作为通过 SQL 建模层次结构的一种方式。
[SQLAlchemy] 是否对使用闭包表创建和遍历对象实例的分层集合(树结构集合)有任何内置支持?
我一直在阅读关于闭包表作为通过 SQL 建模层次结构的一种方式。
[SQLAlchemy] 是否对使用闭包表创建和遍历对象实例的分层集合(树结构集合)有任何内置支持?
我最近在博客上讨论了这个问题。
在大多数情况下,sqlalchemy 没有做任何 SQL 也没有做的事情。sqlalchemy 实际上只提供生成 sql 并将结果集转换为漂亮的 python 对象的方法。
如果您的数据库提供了一些有用的工具来处理递归关系,例如CONNECT BY
orWITH RECURSIVE
构造,那么 sqlalchemy 可以很容易地适应将生成的查询视为可选择和可映射的 Python 对象。
在链接的帖子中,我面临着在 MySQL 上实现读写偏序,它没有为递归数据结构提供 SQL 级别的帮助。我设计的解决方案创建了一个类似 sqlalchemy 风格的检测属性,它在幕后保持传递闭包不变。