私は3つの関連するクラス、Parent、Child、SubChildを持っています。どちらの場合も、関係は1対多です。私はchild.parent
の参照が正しく設定されているので、もちろんsub_child.child.parent
も同様に動作します。中間テーブルを介したsqlalchemy関係
事実、実際にはsub_child.child
を知る必要はありませんが、私はsub_childの最終的な親を知る必要があります。 sub_child.parent
が究極のParentオブジェクトへの参照を返すような関係を設定したいと思います。
これは可能ですか、それとも悪い考えですか?私はドキュメンテーションを読んだが、有望に見えるものはあまり見ない。
私はMySQLでバックエンドとしてpython2とsqlalchemy ormを使用しています。
興味深い - これはデータベースにルックアップをオフロードするのか、それともORMレイヤーで処理するのでしょうか?代わりに、私はクラスでいくつかの簡単なゲッター関数を定義することを検討していました。 – domoarrigato
はいこのマッパーを使用したクエリは、さらに努力することなく3つのテーブルをすべて結合します。もちろん、ネストされたカラムを '@property'で "プルアップ"することもできますが、その後のクエリを避けるためには 'joinedload'のようなクエリオプションを使用する必要があります。 getter版を使う場合は、 '@hybrid_property'デコレータを見てください。 – roman