sqlalchemy に 3 つのテーブルがあるとします。宣言的な方法で定義されたユーザー、ロール、およびユーザーロール。このようなことをすることについてどのように提案しますか:
user = Users.query.get(1) # get user with id = 1
user_roles = user.roles.query.limit(10).all()
現在、ユーザーの役割を取得したい場合は、期待される結果を得るために、3 つのテーブルのいずれかにクエリを実行し、結合を実行する必要があります。直接呼び出すuser.roles
と、フィルタリングまたは制限できないアイテムのリストが表示されるため、あまり役に立ちません。次のようなリクエストでレストインターフェースを作成しようとしているので、結合もあまり役に立ちません。
localhost/users/1/roles
そのため、そのクエリだけで、Users.query.get(1).roles.limit(10) etc etc
肥大化したコードなしでレストインターフェースを本当に「スマートアップ」する必要があります。 if 条件付きで、どのテーブルに参加するかを知る必要はありません。ユーザー モデルには関係プロパティとしてロールが既に含まれているのに、通常のモデルの場合と同じように関係プロパティを単純にクエリできないのはなぜでしょうか?