-- ============================================================ -- 盘古用户平台 - 学校管理模块数据库脚本 -- 作者:pangu -- 创建时间:2026-01-31 -- ============================================================ -- ---------------------------- -- 1. 学校表 -- ---------------------------- CREATE TABLE IF NOT EXISTS `pg_school` ( `school_id` bigint NOT NULL AUTO_INCREMENT COMMENT '学校ID', `school_code` varchar(32) NOT NULL COMMENT '学校编码', `school_name` varchar(100) NOT NULL COMMENT '学校名称', `school_type` char(2) DEFAULT NULL COMMENT '学校类型(01小学 02初中 03高中 04完全中学 99其他)', `region_id` bigint NOT NULL COMMENT '所属区域ID', `region_path` varchar(200) DEFAULT NULL COMMENT '区域路径(如:湖北省-武汉市-武昌区)', `address` varchar(255) DEFAULT NULL COMMENT '详细地址', `contact_person` varchar(50) DEFAULT NULL COMMENT '联系人', `contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` varchar(64) DEFAULT '' COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', `remark` varchar(500) DEFAULT NULL COMMENT '备注', PRIMARY KEY (`school_id`), UNIQUE KEY `uk_school_code` (`school_code`), KEY `idx_region_id` (`region_id`), KEY `idx_school_name` (`school_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学校表'; -- ---------------------------- -- 2. 学校年级关联表 -- ---------------------------- CREATE TABLE IF NOT EXISTS `pg_school_grade` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `school_id` bigint NOT NULL COMMENT '学校ID', `grade_id` bigint NOT NULL COMMENT '年级ID', `order_num` int DEFAULT 0 COMMENT '显示顺序', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', PRIMARY KEY (`id`), UNIQUE KEY `uk_school_grade` (`school_id`, `grade_id`), KEY `idx_school_id` (`school_id`), KEY `idx_grade_id` (`grade_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学校年级关联表'; -- ---------------------------- -- 3. 学校班级关联表 -- ---------------------------- CREATE TABLE IF NOT EXISTS `pg_school_class` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `school_grade_id` bigint NOT NULL COMMENT '学校年级关联ID', `class_id` bigint NOT NULL COMMENT '班级ID', `order_num` int DEFAULT 0 COMMENT '显示顺序', `status` char(1) DEFAULT '0' COMMENT '状态(0正常 1停用)', `create_by` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0存在 1删除)', PRIMARY KEY (`id`), UNIQUE KEY `uk_school_grade_class` (`school_grade_id`, `class_id`), KEY `idx_school_grade_id` (`school_grade_id`), KEY `idx_class_id` (`class_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学校班级关联表'; -- ---------------------------- -- 4. 插入测试数据 -- ---------------------------- -- 学校数据(假设区域ID=111是武昌区) INSERT INTO pg_school (school_id, school_code, school_name, school_type, region_id, region_path, status, create_time) VALUES (1, 'SCH20260001', '武汉市第一中学', '02', 111, '湖北省-武汉市-武昌区', '0', NOW()), (2, 'SCH20260002', '武汉市第三中学', '02', 111, '湖北省-武汉市-武昌区', '0', NOW()), (3, 'SCH20260003', '武汉市水果湖小学', '01', 111, '湖北省-武汉市-武昌区', '0', NOW()); -- 学校-年级关联(武汉市第一中学) INSERT INTO pg_school_grade (id, school_id, grade_id, order_num, status, create_time) VALUES (1, 1, 7, 1, '0', NOW()), -- 七年级 (2, 1, 8, 2, '0', NOW()), -- 八年级 (3, 1, 9, 3, '0', NOW()); -- 九年级 -- 学校-年级关联(武汉市水果湖小学) INSERT INTO pg_school_grade (id, school_id, grade_id, order_num, status, create_time) VALUES (4, 3, 1, 1, '0', NOW()), -- 一年级 (5, 3, 2, 2, '0', NOW()), -- 二年级 (6, 3, 3, 3, '0', NOW()), -- 三年级 (7, 3, 4, 4, '0', NOW()), -- 四年级 (8, 3, 5, 5, '0', NOW()), -- 五年级 (9, 3, 6, 6, '0', NOW()); -- 六年级 -- 学校-班级关联(武汉市第一中学-七年级) INSERT INTO pg_school_class (id, school_grade_id, class_id, order_num, status, create_time) VALUES (1, 1, 1, 1, '0', NOW()), -- 1班 (2, 1, 2, 2, '0', NOW()), -- 2班 (3, 1, 3, 3, '0', NOW()); -- 3班