我想打印数据库表中的项目列表,以及每个相关子项目的小列表(最多 10 个项目)。
例如,我有这两个表:
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 个。
如果我使用连接进行选择,我认为当分页时,例如每页 25 个项目和 100 个用户查询时,它可能会给数据库带来太大压力。所以,我认为这不是一个好的解决方案。
我想到了一个解决方法,有些脏:向ITEMS表添加一个名为subitems_summary(文本类型)的新字段,每次将子项分配给一个项目时,我都会选择加入两个表,并存储结果在那里,所以我可以稍后格式化该字段中的数据。例如,在上面的清单中,项目 3 的 subitems_summary 字段将是:“subitem 2; subitem 4; subitem 7”。
你怎么看?