Index

public.exercise_slide_submissions

Description

Table that groups together all individual task submissions for a single exercise slise submission.

Columns

Name Type Default Nullable Children Parents Comment
course_id uuid true public.courses Which course this submission belongs to. The field is here for making certain SQL queries easier, the same information is available from exercise_slide_submission.exercise_task.exercise.course_id.
course_instance_id uuid true public.course_instances Which course instance this submission was returned to. We need this field because each course instance has different submission lists. A submission to one course instance should not influence other submissions made later on to other course instance. This is useful, for example, if we have a course that never changes but it has a yearly run with a course variant for each year. Associating the submission with the course instance allows students to take the course even if they have tried a previous variant.
created_at timestamp with time zone now() false Timestamp when the record was created
deleted_at timestamp with time zone true Timestamp when the record was deleted. If null, the record is not deleted.
exam_id uuid true public.exams The exam the submission is associated with.
exercise_id uuid false public.exercises Which exercise this submission belongs to.
exercise_slide_id uuid false public.exercise_task_submissions public.exercise_slides Which exercise slide this submission belongs to.
id uuid uuid_generate_v4() false public.exercise_task_submissions public.offered_answers_to_peer_review_temporary public.peer_or_self_review_submissions public.peer_review_queue_entries A unique, stable identifier for the record.
updated_at timestamp with time zone now() false Timestamp when the record was last updated. The field is updated automatically by the set_timestamp trigger.
user_id uuid false public.users The user that returned the submission
user_points_update_strategy user_points_update_strategy false When we get results from a grading, how should we update the user’s points. See https://rage.github.io/secret-project-331/headless_lms_actix/models/gradings/enum.UserPointsUpdateStrategy.html.

Constraints

Name Type Definition
course_instance_or_exam_id_set CHECK CHECK (((course_instance_id IS NULL) <> (exam_id IS NULL)))
exercise_slide_submissions_course_id_fkey FOREIGN KEY FOREIGN KEY (course_id) REFERENCES courses(id)
exercise_slide_submissions_course_instance_id_fkey FOREIGN KEY FOREIGN KEY (course_instance_id) REFERENCES course_instances(id)
exercise_slide_submissions_exam_id_fkey FOREIGN KEY FOREIGN KEY (exam_id) REFERENCES exams(id)
exercise_slide_submissions_exercise_id_fkey FOREIGN KEY FOREIGN KEY (exercise_id) REFERENCES exercises(id)
exercise_slide_submissions_exercise_slide_id_fkey FOREIGN KEY FOREIGN KEY (exercise_slide_id) REFERENCES exercise_slides(id)
exercise_slide_submissions_pkey PRIMARY KEY PRIMARY KEY (id)
exercise_slide_submissions_user_id_fkey FOREIGN KEY FOREIGN KEY (user_id) REFERENCES users(id)

Indexes

Name Definition
exercise_slide_and_submission_ids CREATE UNIQUE INDEX exercise_slide_and_submission_ids ON public.exercise_slide_submissions USING btree (id, exercise_slide_id)
exercise_slide_submissions_fast_search CREATE INDEX exercise_slide_submissions_fast_search ON public.exercise_slide_submissions USING btree (user_id, exercise_id, course_instance_id, exam_id, exercise_slide_id, deleted_at, created_at)
exercise_slide_submissions_pkey CREATE UNIQUE INDEX exercise_slide_submissions_pkey ON public.exercise_slide_submissions USING btree (id)

Triggers

Name Definition
set_timestamp CREATE TRIGGER set_timestamp BEFORE UPDATE ON public.exercise_slide_submissions FOR EACH ROW EXECUTE FUNCTION trigger_set_timestamp()

Relations

er

Generated by tbls