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