47 lines
3.2 KiB
SQL
47 lines
3.2 KiB
SQL
CREATE TABLE IF NOT EXISTS school_assessment_criteria (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
center_application_id INT UNSIGNED NOT NULL,
|
|
cycle_id INT UNSIGNED NOT NULL,
|
|
assessment_type_id INT UNSIGNED NOT NULL,
|
|
title VARCHAR(190) NOT NULL,
|
|
max_score DECIMAL(8,2) NOT NULL DEFAULT 0.00,
|
|
sort_order INT UNSIGNED NOT NULL DEFAULT 1,
|
|
is_active TINYINT(1) NOT NULL DEFAULT 1,
|
|
notes TEXT NULL,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
INDEX idx_school_assessment_criteria_center (center_application_id),
|
|
INDEX idx_school_assessment_criteria_cycle (cycle_id),
|
|
INDEX idx_school_assessment_criteria_assessment (assessment_type_id),
|
|
INDEX idx_school_assessment_criteria_active (assessment_type_id, is_active),
|
|
CONSTRAINT fk_school_assessment_criteria_center_application FOREIGN KEY (center_application_id) REFERENCES center_applications(id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_school_assessment_criteria_cycle FOREIGN KEY (cycle_id) REFERENCES school_cycles(id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_school_assessment_criteria_assessment FOREIGN KEY (assessment_type_id) REFERENCES school_assessment_types(id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
CREATE TABLE IF NOT EXISTS school_assessment_score_items (
|
|
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
|
|
center_application_id INT UNSIGNED NOT NULL,
|
|
cycle_id INT UNSIGNED NOT NULL,
|
|
assessment_score_id INT UNSIGNED NOT NULL,
|
|
assessment_type_id INT UNSIGNED NOT NULL,
|
|
criterion_id INT UNSIGNED NOT NULL,
|
|
student_id INT UNSIGNED NOT NULL,
|
|
score DECIMAL(8,2) NULL,
|
|
max_score DECIMAL(8,2) NOT NULL DEFAULT 0.00,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
UNIQUE KEY uniq_school_assessment_score_item (assessment_score_id, criterion_id),
|
|
INDEX idx_school_assessment_score_items_center (center_application_id),
|
|
INDEX idx_school_assessment_score_items_cycle (cycle_id),
|
|
INDEX idx_school_assessment_score_items_assessment (assessment_type_id),
|
|
INDEX idx_school_assessment_score_items_criterion (criterion_id),
|
|
INDEX idx_school_assessment_score_items_student (student_id),
|
|
CONSTRAINT fk_school_assessment_score_items_center_application FOREIGN KEY (center_application_id) REFERENCES center_applications(id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_school_assessment_score_items_cycle FOREIGN KEY (cycle_id) REFERENCES school_cycles(id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_school_assessment_score_items_score FOREIGN KEY (assessment_score_id) REFERENCES school_assessment_scores(id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_school_assessment_score_items_assessment FOREIGN KEY (assessment_type_id) REFERENCES school_assessment_types(id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_school_assessment_score_items_criterion FOREIGN KEY (criterion_id) REFERENCES school_assessment_criteria(id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_school_assessment_score_items_student FOREIGN KEY (student_id) REFERENCES school_students(id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|