pangu-user-platform/sql/pangu_school.sql

99 lines
4.8 KiB
MySQL
Raw Normal View History

-- ============================================================
-- 盘古用户平台 - 学校管理模块数据库脚本
-- 作者:湖北新华业务中台研发团队
-- 创建时间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班