CREATE TABLE `academic_years` ( `id` varchar(128) NOT NULL, `name` varchar(100) NOT NULL, `start_date` timestamp NOT NULL, `end_date` timestamp NOT NULL, `is_active` boolean NOT NULL DEFAULT false, `created_at` timestamp NOT NULL DEFAULT (now()), `updated_at` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP, CONSTRAINT `academic_years_id` PRIMARY KEY(`id`), CONSTRAINT `academic_years_name_unique` UNIQUE(`name`) ); --> statement-breakpoint CREATE TABLE `class_subject_teachers` ( `class_id` varchar(128) NOT NULL, `subject` enum('语文','数学','英语','美术','体育','科学','社会','音乐') NOT NULL, `teacher_id` varchar(128), `created_at` timestamp NOT NULL DEFAULT (now()), `updated_at` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP, CONSTRAINT `class_subject_teachers_class_id_subject_pk` PRIMARY KEY(`class_id`,`subject`) ); --> statement-breakpoint CREATE TABLE `classrooms` ( `id` varchar(128) NOT NULL, `name` varchar(255) NOT NULL, `building` varchar(100), `floor` int, `capacity` int, `created_at` timestamp NOT NULL DEFAULT (now()), `updated_at` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP, CONSTRAINT `classrooms_id` PRIMARY KEY(`id`), CONSTRAINT `classrooms_name_unique` UNIQUE(`name`) ); --> statement-breakpoint CREATE TABLE `departments` ( `id` varchar(128) NOT NULL, `name` varchar(255) NOT NULL, `description` text, `created_at` timestamp NOT NULL DEFAULT (now()), `updated_at` timestamp NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP, CONSTRAINT `departments_id` PRIMARY KEY(`id`), CONSTRAINT `departments_name_unique` UNIQUE(`name`) ); --> statement-breakpoint ALTER TABLE `classes` ADD `school_name` varchar(255);--> statement-breakpoint ALTER TABLE `class_subject_teachers` ADD CONSTRAINT `class_subject_teachers_teacher_id_users_id_fk` FOREIGN KEY (`teacher_id`) REFERENCES `users`(`id`) ON DELETE set null ON UPDATE no action;--> statement-breakpoint ALTER TABLE `class_subject_teachers` ADD CONSTRAINT `cst_c_fk` FOREIGN KEY (`class_id`) REFERENCES `classes`(`id`) ON DELETE cascade ON UPDATE no action;--> statement-breakpoint CREATE INDEX `academic_years_name_idx` ON `academic_years` (`name`);--> statement-breakpoint CREATE INDEX `academic_years_active_idx` ON `academic_years` (`is_active`);--> statement-breakpoint CREATE INDEX `class_subject_teachers_class_idx` ON `class_subject_teachers` (`class_id`);--> statement-breakpoint CREATE INDEX `class_subject_teachers_teacher_idx` ON `class_subject_teachers` (`teacher_id`);--> statement-breakpoint CREATE INDEX `classrooms_name_idx` ON `classrooms` (`name`);--> statement-breakpoint CREATE INDEX `departments_name_idx` ON `departments` (`name`);