pangu-user-platform/backend/pangu-modules/pangu-business/sql/pangu_tables.sql

329 lines
17 KiB
MySQL
Raw Permalink Normal View History

-- ============================================================
-- 盘古用户平台 - 业务模块建表脚本
-- 作者pangu
-- 创建时间2026-02-02
-- ============================================================
USE `pguser-db`;
-- ============================================================
-- 1. 年级字典表
-- ============================================================
DROP TABLE IF EXISTS `pg_grade`;
CREATE TABLE `pg_grade` (
`grade_id` bigint NOT NULL COMMENT '年级ID',
`grade_code` varchar(32) NOT NULL COMMENT '年级编码',
`grade_name` varchar(50) NOT NULL COMMENT '年级名称',
`order_num` int DEFAULT 0 COMMENT '显示顺序',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志0存在 1删除',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`grade_id`),
UNIQUE KEY `uk_grade_code` (`grade_code`)
) ENGINE=InnoDB COMMENT='年级字典表';
-- 年级初始化数据
INSERT INTO `pg_grade` VALUES
(1, 'GRD001', '一年级', 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(2, 'GRD002', '二年级', 2, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(3, 'GRD003', '三年级', 3, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(4, 'GRD004', '四年级', 4, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(5, 'GRD005', '五年级', 5, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(6, 'GRD006', '六年级', 6, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(7, 'GRD007', '七年级', 7, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(8, 'GRD008', '八年级', 8, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(9, 'GRD009', '九年级', 9, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(10, 'GRD010', '高一', 10, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(11, 'GRD011', '高二', 11, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(12, 'GRD012', '高三', 12, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL);
-- ============================================================
-- 2. 班级字典表
-- ============================================================
DROP TABLE IF EXISTS `pg_class`;
CREATE TABLE `pg_class` (
`class_id` bigint NOT NULL COMMENT '班级ID',
`class_code` varchar(32) NOT NULL COMMENT '班级编码',
`class_name` varchar(50) NOT NULL COMMENT '班级名称',
`order_num` int DEFAULT 0 COMMENT '显示顺序',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志0存在 1删除',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`class_id`),
UNIQUE KEY `uk_class_code` (`class_code`)
) ENGINE=InnoDB COMMENT='班级字典表';
-- 班级初始化数据
INSERT INTO `pg_class` VALUES
(1, 'CLS001', '1班', 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(2, 'CLS002', '2班', 2, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(3, 'CLS003', '3班', 3, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(4, 'CLS004', '4班', 4, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(5, 'CLS005', '5班', 5, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(6, 'CLS006', '6班', 6, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(7, 'CLS007', '7班', 7, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(8, 'CLS008', '8班', 8, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(9, 'CLS009', '9班', 9, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(10, 'CLS010', '10班', 10, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL);
-- ============================================================
-- 3. 学科表
-- ============================================================
DROP TABLE IF EXISTS `pg_subject`;
CREATE TABLE `pg_subject` (
`subject_id` bigint NOT NULL COMMENT '学科ID',
`subject_code` varchar(32) NOT NULL COMMENT '学科编码',
`subject_name` varchar(50) NOT NULL COMMENT '学科名称',
`order_num` int DEFAULT 0 COMMENT '显示顺序',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志0存在 1删除',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`subject_id`),
UNIQUE KEY `uk_subject_code` (`subject_code`)
) ENGINE=InnoDB COMMENT='学科表';
-- 学科初始化数据
INSERT INTO `pg_subject` VALUES
(1, 'SUB001', '语文', 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(2, 'SUB002', '数学', 2, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(3, 'SUB003', '英语', 3, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(4, 'SUB004', '物理', 4, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(5, 'SUB005', '化学', 5, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(6, 'SUB006', '生物', 6, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(7, 'SUB007', '历史', 7, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(8, 'SUB008', '地理', 8, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL),
(9, 'SUB009', '政治', 9, '0', '000000', 103, 1, NOW(), 1, NOW(), '0', NULL);
-- ============================================================
-- 4. 区域表
-- ============================================================
DROP TABLE IF EXISTS `pg_region`;
CREATE TABLE `pg_region` (
`region_id` bigint NOT NULL COMMENT '区域ID',
`parent_id` bigint DEFAULT 0 COMMENT '父区域ID',
`ancestors` varchar(500) DEFAULT '' COMMENT '祖级列表',
`region_name` varchar(100) NOT NULL COMMENT '区域名称',
`region_code` varchar(32) DEFAULT NULL COMMENT '区域编码',
`level` int DEFAULT 1 COMMENT '层级1省 2市 3区县',
`order_num` int DEFAULT 0 COMMENT '显示顺序',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志0存在 1删除',
PRIMARY KEY (`region_id`)
) ENGINE=InnoDB COMMENT='区域表';
-- 区域初始化数据(湖北省示例)
INSERT INTO `pg_region` VALUES
(420000, 0, '0', '湖北省', '420000', 1, 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0'),
(420100, 420000, '0,420000', '武汉市', '420100', 2, 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0'),
(420102, 420100, '0,420000,420100', '江岸区', '420102', 3, 1, '0', '000000', 103, 1, NOW(), 1, NOW(), '0'),
(420103, 420100, '0,420000,420100', '江汉区', '420103', 3, 2, '0', '000000', 103, 1, NOW(), 1, NOW(), '0'),
(420104, 420100, '0,420000,420100', '硚口区', '420104', 3, 3, '0', '000000', 103, 1, NOW(), 1, NOW(), '0');
-- ============================================================
-- 5. 学校表
-- ============================================================
DROP TABLE IF EXISTS `pg_school`;
CREATE TABLE `pg_school` (
`school_id` bigint NOT NULL COMMENT '学校ID',
`school_code` varchar(32) NOT NULL COMMENT '学校编码',
`school_name` varchar(100) NOT NULL COMMENT '学校名称',
`school_type` char(1) DEFAULT '1' COMMENT '学校类型1小学 2初中 3高中 4中专 5大学',
`region_id` bigint DEFAULT NULL COMMENT '所属区域ID',
`region_path` varchar(500) DEFAULT NULL COMMENT '区域路径',
`address` varchar(500) 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停用',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint DEFAULT NULL 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`)
) ENGINE=InnoDB COMMENT='学校表';
-- ============================================================
-- 6. 学校年级关联表
-- ============================================================
DROP TABLE IF EXISTS `pg_school_grade`;
CREATE TABLE `pg_school_grade` (
`id` bigint NOT NULL COMMENT '主键',
`school_id` bigint NOT NULL COMMENT '学校ID',
`grade_id` bigint NOT NULL COMMENT '年级ID',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_school_grade` (`school_id`, `grade_id`)
) ENGINE=InnoDB COMMENT='学校年级关联表';
-- ============================================================
-- 7. 学校班级表
-- ============================================================
DROP TABLE IF EXISTS `pg_school_class`;
CREATE TABLE `pg_school_class` (
`id` bigint NOT NULL COMMENT '主键',
`school_id` bigint NOT NULL COMMENT '学校ID',
`school_grade_id` bigint NOT NULL COMMENT '学校年级ID',
`class_id` bigint NOT NULL COMMENT '班级ID',
`class_alias` varchar(50) DEFAULT NULL COMMENT '班级别名',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_school_grade` (`school_id`, `school_grade_id`)
) ENGINE=InnoDB COMMENT='学校班级表';
-- ============================================================
-- 8. 会员表
-- ============================================================
DROP TABLE IF EXISTS `pg_member`;
CREATE TABLE `pg_member` (
`member_id` bigint NOT NULL COMMENT '会员ID',
`member_code` varchar(32) NOT NULL COMMENT '会员编码',
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
`password` varchar(100) DEFAULT NULL COMMENT '密码',
`nickname` varchar(50) DEFAULT NULL COMMENT '昵称',
`avatar` varchar(500) DEFAULT NULL COMMENT '头像',
`gender` char(1) DEFAULT '0' COMMENT '性别0未知 1男 2女',
`birthday` date DEFAULT NULL COMMENT '生日',
`identity_type` char(1) DEFAULT '1' COMMENT '身份类型1家长 2教师',
`open_id` varchar(100) DEFAULT NULL COMMENT '微信OpenID',
`union_id` varchar(100) DEFAULT NULL COMMENT '微信UnionID',
`region_id` bigint DEFAULT NULL COMMENT '区域ID',
`school_id` bigint DEFAULT NULL COMMENT '学校ID教师用',
`school_grade_id` bigint DEFAULT NULL COMMENT '年级ID教师用',
`school_class_id` bigint DEFAULT NULL COMMENT '班级ID教师用',
`register_source` char(1) DEFAULT '1' COMMENT '注册来源1小程序 2H5 3后台 4导入',
`register_time` datetime DEFAULT NULL COMMENT '注册时间',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`last_login_ip` varchar(50) DEFAULT NULL COMMENT '最后登录IP',
`login_count` int DEFAULT 0 COMMENT '登录次数',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志0存在 1删除',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`member_id`),
UNIQUE KEY `uk_member_code` (`member_code`),
KEY `idx_phone` (`phone`),
KEY `idx_open_id` (`open_id`)
) ENGINE=InnoDB COMMENT='会员表';
-- ============================================================
-- 9. 学生表
-- ============================================================
DROP TABLE IF EXISTS `pg_student`;
CREATE TABLE `pg_student` (
`student_id` bigint NOT NULL COMMENT '学生ID',
`student_name` varchar(50) NOT NULL COMMENT '学生姓名',
`student_no` varchar(32) DEFAULT NULL COMMENT '学号',
`gender` char(1) DEFAULT '0' COMMENT '性别0未知 1男 2女',
`birthday` date DEFAULT NULL COMMENT '生日',
`region_id` bigint DEFAULT NULL COMMENT '区域ID',
`region_path` varchar(500) DEFAULT NULL COMMENT '区域路径',
`school_id` bigint DEFAULT NULL COMMENT '学校ID',
`school_grade_id` bigint DEFAULT NULL COMMENT '学校年级ID',
`school_class_id` bigint DEFAULT NULL COMMENT '学校班级ID',
`subject_id` bigint DEFAULT NULL COMMENT '学科ID',
`member_id` bigint DEFAULT NULL COMMENT '绑定的会员ID',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志0存在 1删除',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`student_id`),
KEY `idx_student_no` (`student_no`),
KEY `idx_school` (`school_id`, `school_grade_id`, `school_class_id`)
) ENGINE=InnoDB COMMENT='学生表';
-- ============================================================
-- 10. 应用表
-- ============================================================
DROP TABLE IF EXISTS `pg_application`;
CREATE TABLE `pg_application` (
`app_id` bigint NOT NULL COMMENT '应用ID',
`app_code` varchar(32) NOT NULL COMMENT '应用编码',
`app_name` varchar(100) NOT NULL COMMENT '应用名称',
`app_secret` varchar(100) NOT NULL COMMENT '应用密钥',
`contact_person` varchar(50) DEFAULT NULL COMMENT '联系人',
`contact_phone` varchar(20) DEFAULT NULL COMMENT '联系电话',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
`create_by` bigint DEFAULT NULL COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` bigint DEFAULT NULL COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志0存在 1删除',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`app_id`),
UNIQUE KEY `uk_app_code` (`app_code`)
) ENGINE=InnoDB COMMENT='第三方应用表';
-- ============================================================
-- 11. API接口字典表
-- ============================================================
DROP TABLE IF EXISTS `pg_api_dict`;
CREATE TABLE `pg_api_dict` (
`api_id` bigint NOT NULL COMMENT 'API ID',
`api_code` varchar(50) NOT NULL COMMENT 'API编码',
`api_name` varchar(100) NOT NULL COMMENT 'API名称',
`api_path` varchar(200) NOT NULL COMMENT 'API路径',
`api_method` varchar(10) DEFAULT 'GET' COMMENT '请求方法',
`api_desc` varchar(500) DEFAULT NULL COMMENT 'API描述',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`order_num` int DEFAULT 0 COMMENT '排序',
PRIMARY KEY (`api_id`),
UNIQUE KEY `uk_api_code` (`api_code`)
) ENGINE=InnoDB COMMENT='API接口字典表';
-- ============================================================
-- 12. 应用API授权表
-- ============================================================
DROP TABLE IF EXISTS `pg_app_api`;
CREATE TABLE `pg_app_api` (
`id` bigint NOT NULL COMMENT '主键',
`app_id` bigint NOT NULL COMMENT '应用ID',
`api_id` bigint NOT NULL COMMENT 'API ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_app_api` (`app_id`, `api_id`)
) ENGINE=InnoDB COMMENT='应用API授权表';