6

SQL を介して階層をモデル化する方法として、クロージャー テーブルについて読んでいます。

[SQLAlchemy] には、クロージャ テーブルを使用してオブジェクト インスタンスの階層コレクション (ツリー構造のコレクション) を作成およびトラバースするためのサポートが組み込まれていますか?

4

1 に答える 1

7

私は最近、この問題についてブログを書きました。

ほとんどの場合、sqlalchemy は、SQL がしないことは何もしません。sqlalchemy は実際には、SQL を生成し、結果セットを適切な Python オブジェクトに変換する方法のみを提供します。

CONNECT BYデータベースがorコンストラクトなどの再帰関係を操作するための便利なツールを提供している場合、WITH RECURSIVEsqlalchemy は結果のクエリを選択可能でマップ可能な Python オブジェクトとして扱うように簡単に適応させることができます。

リンクされた投稿では、MySQL で読み取り/書き込みの部分的な順序を実装することに直面しました。これは、再帰的なデータ構造に対して SQL レベルの支援を提供しません。私が考案した解決策は、舞台裏で推移的な閉鎖不変を維持する sqlalchemy スタイルの計測属性の類似物を作成しました。

于 2011-09-07T20:52:29.893 に答える