Index

public.user_chapter_locking_statuses

Description

Tracks chapter locking statuses for users. Status “unlocked” means student can work on exercises. Status “completed_and_locked” means chapter is done and exercises are locked again. Status “not_unlocked_yet” means chapter is locked because previous chapters are not completed.

Columns

Name Type Default Nullable Children Parents Comment
chapter_id uuid false public.chapters
course_id uuid false public.courses
created_at timestamp with time zone now() false
deleted_at timestamp with time zone true
id uuid uuid_generate_v4() false
status chapter_locking_status false unlocked: student can work on exercises. completed_and_locked: chapter is done, exercises are locked. not_unlocked_yet: chapter is locked, previous chapters not completed.
updated_at timestamp with time zone now() false
user_id uuid false public.users

Constraints

Name Type Definition
idx_user_chapter_locking_statuses_user_chapter_active UNIQUE UNIQUE NULLS NOT DISTINCT (user_id, chapter_id, deleted_at)
user_chapter_locking_statuses_chapter_id_fkey FOREIGN KEY FOREIGN KEY (chapter_id) REFERENCES chapters(id)
user_chapter_locking_statuses_chapter_id_not_null n NOT NULL chapter_id
user_chapter_locking_statuses_course_id_fkey FOREIGN KEY FOREIGN KEY (course_id) REFERENCES courses(id)
user_chapter_locking_statuses_course_id_not_null n NOT NULL course_id
user_chapter_locking_statuses_created_at_not_null n NOT NULL created_at
user_chapter_locking_statuses_id_not_null n NOT NULL id
user_chapter_locking_statuses_pkey PRIMARY KEY PRIMARY KEY (id)
user_chapter_locking_statuses_status_not_null n NOT NULL status
user_chapter_locking_statuses_updated_at_not_null n NOT NULL updated_at
user_chapter_locking_statuses_user_id_fkey FOREIGN KEY FOREIGN KEY (user_id) REFERENCES users(id)
user_chapter_locking_statuses_user_id_not_null n NOT NULL user_id

Indexes

Name Definition
idx_user_chapter_locking_statuses_chapter_id CREATE INDEX idx_user_chapter_locking_statuses_chapter_id ON public.user_chapter_locking_statuses USING btree (chapter_id)
idx_user_chapter_locking_statuses_course_id CREATE INDEX idx_user_chapter_locking_statuses_course_id ON public.user_chapter_locking_statuses USING btree (course_id)
idx_user_chapter_locking_statuses_user_chapter_active CREATE UNIQUE INDEX idx_user_chapter_locking_statuses_user_chapter_active ON public.user_chapter_locking_statuses USING btree (user_id, chapter_id, deleted_at) NULLS NOT DISTINCT
idx_user_chapter_locking_statuses_user_course CREATE INDEX idx_user_chapter_locking_statuses_user_course ON public.user_chapter_locking_statuses USING btree (user_id, course_id) WHERE (deleted_at IS NULL)
idx_user_chapter_locking_statuses_user_id CREATE INDEX idx_user_chapter_locking_statuses_user_id ON public.user_chapter_locking_statuses USING btree (user_id)
user_chapter_locking_statuses_pkey CREATE UNIQUE INDEX user_chapter_locking_statuses_pkey ON public.user_chapter_locking_statuses USING btree (id)

Triggers

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

Relations

er

Generated by tbls