Поддерживает ли SQLAlchemy «закрытие таблиц»? - PullRequest
6 голосов
/ 08 сентября 2011

Я читал о таблицах закрытия как способ моделирования иерархий с помощью SQL.

Имеет ли [SQLAlchemy] встроенную поддержку для создания и обхода иерархических коллекций экземпляров объектов (древовидных структур) с использованием таблиц замыканий?

1 Ответ

7 голосов
/ 08 сентября 2011

Я недавно написал в блоге по этому вопросу.

По большей части sqlalchemy не делает ничего, чего не делает SQL; sqlalchemy на самом деле предоставляет только способы генерации sql и превращения результирующих наборов в красивые объекты python.

Если в вашей базе данных есть несколько полезных инструментов для работы с рекуррентными отношениями, такими как конструкции CONNECT BY или WITH RECURSIVE, то sqlalchemy можно легко адаптировать для обработки полученных запросов как выбираемых и отображаемых объектов python.

В связанном посте я столкнулся с реализацией частичного порядка чтения-записи в MySQL, который не предлагает помощи уровня SQL для рекурсивных структур данных. Разработанное мною решение создало аналог инструментального атрибута стиля sqlalchemy, который поддерживал инвариант транзитивного замыкания за кулисами.

...