From 85fb7b8ad29e24d6969daf690e005f4fbdee8e43 Mon Sep 17 00:00:00 2001 From: Sanford Student Date: Wed, 11 Jan 2017 14:39:10 -0500 Subject: [PATCH] add index for modified to course and subsection grades --- lms/djangoapps/grades/models.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lms/djangoapps/grades/models.py b/lms/djangoapps/grades/models.py index e95cda16e0..e53ca6f674 100644 --- a/lms/djangoapps/grades/models.py +++ b/lms/djangoapps/grades/models.py @@ -253,6 +253,14 @@ class PersistentSubsectionGrade(DeleteGradesMixin, TimeStampedModel): # * Course staff can see all grades for a course using (course_id,) ('course_id', 'user_id', 'usage_key'), ] + # Allows querying in the following ways: + # (modified): find all the grades updated within a certain timespan + # (modified, course_id): find all the grades updated within a timespan for a certain course + # (modified, course_id, usage_key): find all the grades updated within a timespan for a subsection + # in a course + index_together = [ + ('modified', 'course_id', 'usage_key') + ] # primary key will need to be large for this table id = UnsignedBigIntAutoField(primary_key=True) # pylint: disable=invalid-name @@ -502,11 +510,14 @@ class PersistentCourseGrade(DeleteGradesMixin, TimeStampedModel): # (course_id) for instructors to see all course grades, implicitly created via the unique_together constraint # (user_id) for course dashboard; explicitly declared as an index below # (passed_timestamp, course_id) for tracking when users first earned a passing grade. + # (modified): find all the grades updated within a certain timespan + # (modified, course_id): find all the grades updated within a certain timespan for a course unique_together = [ ('course_id', 'user_id'), ] index_together = [ ('passed_timestamp', 'course_id'), + ('modified', 'course_id') ] # primary key will need to be large for this table