39669-vm/db/migrations/20260417_school_assessment_scores.sql
2026-04-17 02:12:13 +00:00

28 lines
1.8 KiB
SQL

CREATE TABLE IF NOT EXISTS school_assessment_scores (
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,
student_id INT UNSIGNED NOT NULL,
teacher_id INT UNSIGNED NULL,
score DECIMAL(8,2) NULL,
max_score DECIMAL(8,2) NOT NULL DEFAULT 100.00,
status VARCHAR(20) NOT NULL DEFAULT 'present',
notes TEXT NULL,
assessed_on DATE NOT NULL,
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 (cycle_id, assessment_type_id, student_id),
INDEX idx_school_assessment_scores_center (center_application_id),
INDEX idx_school_assessment_scores_cycle (cycle_id),
INDEX idx_school_assessment_scores_assessment (assessment_type_id),
INDEX idx_school_assessment_scores_student (student_id),
INDEX idx_school_assessment_scores_teacher (teacher_id),
INDEX idx_school_assessment_scores_status (status),
CONSTRAINT fk_school_assessment_scores_center_application FOREIGN KEY (center_application_id) REFERENCES center_applications(id) ON DELETE CASCADE,
CONSTRAINT fk_school_assessment_scores_cycle FOREIGN KEY (cycle_id) REFERENCES school_cycles(id) ON DELETE CASCADE,
CONSTRAINT fk_school_assessment_scores_assessment FOREIGN KEY (assessment_type_id) REFERENCES school_assessment_types(id) ON DELETE CASCADE,
CONSTRAINT fk_school_assessment_scores_student FOREIGN KEY (student_id) REFERENCES school_students(id) ON DELETE CASCADE,
CONSTRAINT fk_school_assessment_scores_teacher FOREIGN KEY (teacher_id) REFERENCES school_teachers(id) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;