SQLAlchemy是否支持“闭包表”?

时间:2011-09-07 20:44:51

标签: python sql sqlalchemy transitive-closure-table

我一直在阅读closure tables作为一种通过SQL建模层次结构的方法。

[SQLAlchemy]是否对使用闭包表创建和遍历对象实例(树结构集合)的分层集合有任何内置支持?

1 个答案:

答案 0 :(得分:7)

我最近blogged on this matter.

在大多数情况下,sqlalchemy不做任何SQL也不做的事情; sqlalchemy实际上只提供生成sql的方法,并将结果集转换为漂亮的python对象。

如果您的数据库提供了一些有用的工具来处理递归关系,例如CONNECT BYWITH RECURSIVE结构,那么sqlalchemy可以很容易地适应将生成的查询视为可选择和可映射的python对象。

在链接的帖子中,我面临着在MySQL上实现读写部分顺序,它没有为递归数据结构提供SQL级别的帮助。我设计的解决方案创建了一个sqlalchemy样式的仪器属性的类比,它在幕后保持了传递闭包的不变性。