30 lines
1019 B
SQL
30 lines
1019 B
SQL
-- Capstone assessments: sub-module scoped, backed by question_sets (type CAPSTONE).
|
|
|
|
ALTER TABLE question_sets DROP CONSTRAINT IF EXISTS question_sets_set_type_check;
|
|
ALTER TABLE question_sets ADD CONSTRAINT question_sets_set_type_check
|
|
CHECK (set_type IN (
|
|
'PRACTICE',
|
|
'INITIAL_ASSESSMENT',
|
|
'QUIZ',
|
|
'EXAM',
|
|
'SURVEY',
|
|
'CAPSTONE'
|
|
));
|
|
|
|
CREATE TABLE IF NOT EXISTS sub_module_capstones (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
sub_module_id BIGINT NOT NULL REFERENCES sub_modules(id) ON DELETE CASCADE,
|
|
title VARCHAR(255) NOT NULL,
|
|
description TEXT,
|
|
tips TEXT,
|
|
thumbnail TEXT,
|
|
question_set_id BIGINT NOT NULL REFERENCES question_sets(id) ON DELETE CASCADE,
|
|
display_order INT NOT NULL DEFAULT 0,
|
|
is_active BOOLEAN NOT NULL DEFAULT TRUE,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE (question_set_id)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sub_module_capstones_sub_module_id
|
|
ON sub_module_capstones (sub_module_id);
|