我在下面设计了多对多表:
activity
----------
id
name
activity_student
----------
id
activity_id
student_id
student
----------
id
name
每个学生可以参加很多活动,每个活动可以有很多参与者。
我想从活动中选择,同时我想将参与者收集为数组。
我想要制作的最终数据如下:
[
id => 1,
name => football club activity,
participants =>
[
[
id => 1,
name => example student,
class => 3
],
[
id => 3,
name => example student2,
class => 5
]
]
]
我尝试为 student_id 选择 activity.* 和 group_concat。然后我使用 foreach 语句检索了学生的数据。
但我认为这不是最佳实践,因为查询时间超过 10 秒,超过 10,000 行。
最佳做法是什么?
我正在使用 CI4,带有 InnoDB 引擎的 mysql 数据库。
FFIVE