Description: The knowledge profile is assembled at query time by joining student_topic_masteries and student_topic_weaknesses per student+course. Add indexes to keep this fast as data grows.
Acceptance Criteria:
- Composite index on student_topic_masteries (student_id, course_id).
- Index on student_topic_weaknesses (student_id, topic_id) (supports both profile assembly and the dedup lookup).
- Index on topics (slug) if profile keys are slugs.
Technical notes: Verify column types/FK constraints already exist before indexing.
Description: The knowledge profile is assembled at query time by joining
student_topic_masteriesandstudent_topic_weaknessesper student+course. Add indexes to keep this fast as data grows.Acceptance Criteria:
Technical notes: Verify column types/FK constraints already exist before indexing.