アイテムのコレクション (CollectionItem) を表す Collection という Django モデルがあります。各コレクションには、特定のタイプのアイテムのみが含まれます。(CollectionItem には Collection への外部キーがあります)。
特定のタイプの公開フラグ付きリストにあるすべての CollectionItems を取得し、特定のフィールドで並べ替えて返したいと考えています。私が使用するクエリコードは次のとおりです。
lists = Collection.objects.filter(is_public=True, type=7)
items = CollectionItem.objects.none()
for list in lists:
items |= CollectionItem.objects.filter(collection=list)
items = items.order_by('name')
大量のリストとアイテムを含む大規模なデータベースがある場合、これはまったくうまく拡張できないと想像する必要があります。Djangoでこれを行うより良い方法はありますか? それとも、クエリ ループに伴う非効率性は、他のオプションと比較して無視できる程度なので、あまり心配する必要はないでしょうか?