データベース テーブルからアイテムのリストを印刷したいと思います。関連するサブアイテムの小さなリスト (最大 10 アイテム) をそれぞれのアイテムと共に出力したいと思います。
たとえば、次の 2 つのテーブルがあります。
ITEMS
id: integer
name: string
SUBITEMS
id: integer
name: string
item_id: integer
そのため、アイテムには多くのサブアイテムを含めることができます。
私はこのようなものを印刷したいと思います:
Item 1
this item has: subitem 1, subitem 2, subitem 3
Item 2
this item has: subitem 4, subitem 5, subitem 6
Item 3
this item has: subitem 2, subitem 4, subitem 7
パフォーマンスを念頭に置いてこれを取得するにはどうすればよいですか? 前述したように、各アイテムには多くのサブアイテムを含めることができますが、ここでは最大 10 個まで表示します。
結合を使用して選択を行うと、たとえば、1 ページあたり 25 項目のページ付けがあり、100 人のユーザーがクエリを実行している場合、データベースに過度の負荷がかかる可能性があると思います。したがって、これは良い解決策ではないと思います。
サブアイテムがアイテムに割り当てられるたびに、サブアイテムがアイテムに割り当てられるたびに、2つのテーブルを結合するように選択し、保存します。そこに結果があるので、後でそのフィールドのデータをフォーマットできます。たとえば、上記のリストでは、アイテム 3 の subitems_summary フィールドは「サブアイテム 2; サブアイテム 4; サブアイテム 7」になります。
どう思いますか?