270 lines
14 KiB
SQL
270 lines
14 KiB
SQL
-- 宿舍管理数据库建表脚本
|
|
-- 来源:docs/业务模块/学工管理-宿舍管理/数据库设计/宿舍管理数据库设计.md
|
|
-- 用途:统一存储宿舍管理模块所有相关表的建表SQL,便于维护和执行
|
|
-- 维护人:数据库设计团队
|
|
-- 日期:2025-01-14
|
|
|
|
-- 1. 校区信息表
|
|
drop table if exists `xg_dorm_campus`;
|
|
create table `xg_dorm_campus` (
|
|
`id` bigint(20) not null comment '主键ID',
|
|
`campus_code` varchar(50) not null comment '校区编码',
|
|
`campus_name` varchar(100) not null comment '校区名称',
|
|
`campus_description` varchar(500) default null comment '校区描述',
|
|
`sort_order` int(11) default '0' comment '排序号',
|
|
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
|
`tenant_id` bigint(20) default '0' comment '租户编号',
|
|
`create_by` bigint(20) default null comment '创建者',
|
|
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
|
`create_time` datetime default null comment '创建时间',
|
|
`update_by` bigint(20) default null comment '更新者',
|
|
`update_time` datetime default null comment '更新时间',
|
|
`remark` varchar(500) default null comment '备注',
|
|
primary key (`id`),
|
|
unique key `uk_campus_code` (`campus_code`)
|
|
) engine=innodb default charset=utf8mb4 comment='校区信息表';
|
|
|
|
-- 2. 宿舍区信息表
|
|
drop table if exists `xg_dorm_area`;
|
|
create table `xg_dorm_area` (
|
|
`id` bigint(20) not null comment '主键ID',
|
|
`area_code` varchar(50) not null comment '宿舍区编码',
|
|
`area_name` varchar(100) not null comment '宿舍区名称',
|
|
`campus_id` bigint(20) not null comment '所属校区ID',
|
|
`area_description` varchar(500) default null comment '宿舍区描述',
|
|
`sort_order` int(11) default '0' comment '排序号',
|
|
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
|
`tenant_id` bigint(20) default '0' comment '租户编号',
|
|
`create_by` bigint(20) default null comment '创建者',
|
|
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
|
`create_time` datetime default null comment '创建时间',
|
|
`update_by` bigint(20) default null comment '更新者',
|
|
`update_time` datetime default null comment '更新时间',
|
|
`remark` varchar(500) default null comment '备注',
|
|
primary key (`id`),
|
|
unique key `uk_area_code` (`area_code`),
|
|
key `idx_campus_id` (`campus_id`)
|
|
) engine=innodb default charset=utf8mb4 comment='宿舍区信息表';
|
|
|
|
-- 3. 宿舍楼信息表
|
|
drop table if exists `xg_dorm_building`;
|
|
create table `xg_dorm_building` (
|
|
`id` bigint(20) not null comment '主键ID',
|
|
`building_code` varchar(50) not null comment '宿舍楼编码',
|
|
`building_name` varchar(100) not null comment '宿舍楼名称',
|
|
`area_id` bigint(20) not null comment '所属宿舍区ID',
|
|
`campus_id` bigint(20) not null comment '所属校区ID',
|
|
`building_type` char(1) default '1' comment '宿舍楼类型(1男生楼 2女生楼 3混合楼)',
|
|
`building_description` varchar(500) default null comment '宿舍楼描述',
|
|
`sort_order` int(11) default '0' comment '排序号',
|
|
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
|
`tenant_id` bigint(20) default '0' comment '租户编号',
|
|
`create_by` bigint(20) default null comment '创建者',
|
|
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
|
`create_time` datetime default null comment '创建时间',
|
|
`update_by` bigint(20) default null comment '更新者',
|
|
`update_time` datetime default null comment '更新时间',
|
|
`remark` varchar(500) default null comment '备注',
|
|
primary key (`id`),
|
|
unique key `uk_building_code` (`building_code`),
|
|
key `idx_area_id` (`area_id`),
|
|
key `idx_campus_id` (`campus_id`)
|
|
) engine=innodb default charset=utf8mb4 comment='宿舍楼信息表';
|
|
|
|
-- 4. 宿舍房间信息表
|
|
drop table if exists `xg_dorm_room`;
|
|
create table `xg_dorm_room` (
|
|
`id` bigint(20) not null comment '主键ID',
|
|
`room_code` varchar(50) not null comment '房间编号',
|
|
`room_name` varchar(100) not null comment '房间名称',
|
|
`building_id` bigint(20) not null comment '所属宿舍楼ID',
|
|
`floor_num` int(11) not null comment '楼层',
|
|
`room_type` char(1) default '1' comment '房间类型(1学生宿舍 3教师宿舍)',
|
|
`actual_beds` int(11) default 4 comment '实际床位数',
|
|
`room_area` decimal(10,2) default null comment '房间面积(平方米)',
|
|
`room_status` char(1) default '0' comment '房间状态(0可用 1维修中 2已报废)',
|
|
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
|
`tenant_id` bigint(20) default '0' comment '租户编号',
|
|
`create_by` bigint(20) default null comment '创建者',
|
|
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
|
`create_time` datetime default null comment '创建时间',
|
|
`update_by` bigint(20) default null comment '更新者',
|
|
`update_time` datetime default null comment '更新时间',
|
|
`remark` varchar(500) default null comment '备注',
|
|
primary key (`id`),
|
|
unique key `uk_room_code` (`room_code`),
|
|
key `idx_building_id` (`building_id`),
|
|
key `idx_floor_num` (`floor_num`)
|
|
) engine=innodb default charset=utf8mb4 comment='宿舍房间信息表';
|
|
|
|
-- 5. 宿舍床位信息表
|
|
drop table if exists `xg_dorm_bed`;
|
|
create table `xg_dorm_bed` (
|
|
`id` bigint(20) not null comment '主键ID',
|
|
`bed_code` varchar(50) not null comment '床位编号',
|
|
`bed_name` varchar(100) not null comment '床位名称',
|
|
`room_id` bigint(20) not null comment '所属房间ID',
|
|
`bed_type` char(1) default '1' comment '床位类型(1下铺 2上铺 3中铺 4独立床)',
|
|
`bed_status` char(1) default '0' comment '床位状态(0空闲 1已分配 2维修中)',
|
|
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
|
`tenant_id` bigint(20) default '0' comment '租户编号',
|
|
`create_by` bigint(20) default null comment '创建者',
|
|
`create_time` datetime default null comment '创建时间',
|
|
`update_by` bigint(20) default null comment '更新者',
|
|
`update_time` datetime default null comment '更新时间',
|
|
`remark` varchar(500) default null comment '备注',
|
|
primary key (`id`),
|
|
unique key `uk_bed_code` (`bed_code`),
|
|
key `idx_room_id` (`room_id`)
|
|
) engine=innodb default charset=utf8mb4 comment='宿舍床位信息表';
|
|
|
|
-- 6. 床位学生分配关系表
|
|
drop table if exists `xg_dorm_bed_student`;
|
|
create table `xg_dorm_bed_student` (
|
|
`id` bigint(20) not null comment '主键ID',
|
|
`college_id` bigint(20) not null comment '分配学院ID',
|
|
`student_id` bigint(20) not null comment '分配学生ID',
|
|
`bed_id` bigint(20) not null comment '床位ID',
|
|
`room_id` bigint(20) not null comment '房间ID',
|
|
`building_id` bigint(20) not null comment '宿舍楼ID',
|
|
`area_id` bigint(20) not null comment '宿舍区ID',
|
|
`campus_id` bigint(20) not null comment '校区ID',
|
|
`status` char(1) default '0' comment '状态(0正常 1已退宿)',
|
|
`assign_time` datetime not null comment '分配时间',
|
|
`checkout_time` datetime default null comment '退宿时间',
|
|
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
|
`tenant_id` bigint(20) default '0' comment '租户编号',
|
|
`create_by` bigint(20) default null comment '创建者',
|
|
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
|
`create_time` datetime default null comment '创建时间',
|
|
`update_by` bigint(20) default null comment '更新者',
|
|
`update_time` datetime default null comment '更新时间',
|
|
`remark` varchar(500) default null comment '备注',
|
|
primary key (`id`),
|
|
unique key `uk_student_bed` (`student_id`, `bed_id`),
|
|
key `idx_college_id` (`college_id`),
|
|
key `idx_student_id` (`student_id`),
|
|
key `idx_bed_id` (`bed_id`),
|
|
key `idx_room_id` (`room_id`),
|
|
key `idx_building_id` (`building_id`),
|
|
key `idx_area_id` (`area_id`),
|
|
key `idx_campus_id` (`campus_id`),
|
|
key `idx_assign_time` (`assign_time`)
|
|
) engine=innodb default charset=utf8mb4 comment='床位学生分配关系表';
|
|
|
|
-- 7. 宿舍管理员信息表
|
|
drop table if exists `xg_dorm_manager`;
|
|
create table `xg_dorm_manager` (
|
|
`id` bigint(20) not null comment '主键ID',
|
|
`manager_name` varchar(100) not null comment '管理员姓名',
|
|
`manager_type` char(1) not null comment '管理员类型(1全校管理员 2校区管理员 3宿舍区管理员 4宿舍楼管理员)',
|
|
`manager_level` int(11) default 1 comment '管理级别(1-5,1为最高)',
|
|
`user_id` bigint(20) default null comment '关联用户ID',
|
|
`phone` varchar(20) default null comment '联系电话',
|
|
`gender` char(1) default '0' comment '性别(0男 1女 2未知)',
|
|
`status` char(1) default '0' comment '状态(0正常 1停用)',
|
|
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
|
`tenant_id` bigint(20) default '0' comment '租户编号',
|
|
`create_by` bigint(20) default null comment '创建者',
|
|
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
|
`create_time` datetime default null comment '创建时间',
|
|
`update_by` bigint(20) default null comment '更新者',
|
|
`update_time` datetime default null comment '更新时间',
|
|
`remark` varchar(500) default null comment '备注',
|
|
primary key (`id`),
|
|
key `idx_user_id` (`user_id`),
|
|
key `idx_manager_type` (`manager_type`)
|
|
) engine=innodb default charset=utf8mb4 comment='宿舍管理员信息表';
|
|
|
|
-- 8. 管理员授权关系表
|
|
drop table if exists `xg_dorm_manager_source`;
|
|
create table `xg_dorm_manager_source` (
|
|
`id` bigint(20) not null comment '主键ID',
|
|
`manager_id` bigint(20) not null comment '管理员ID',
|
|
`permission_type` char(1) default '1' comment '权限类型(1查看 2编辑 3完全管理)',
|
|
`auth_type` char(1) not null comment '授权类型(1全校级 2校区级 3宿舍区级 4楼栋级)',
|
|
`auth_source` bigint(20) default null comment '授权来源ID(对应校区ID或宿舍区ID或楼栋ID)',
|
|
`status` char(1) default '0' comment '状态(0有效 1已撤销)',
|
|
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
|
`tenant_id` bigint(20) default '0' comment '租户编号',
|
|
`create_by` bigint(20) default null comment '创建者',
|
|
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
|
`create_time` datetime default null comment '创建时间',
|
|
`update_by` bigint(20) default null comment '更新者',
|
|
`update_time` datetime default null comment '更新时间',
|
|
`remark` varchar(500) default null comment '备注',
|
|
primary key (`id`),
|
|
key `idx_manager_id` (`manager_id`),
|
|
key `idx_auth_source` (`auth_source`)
|
|
) engine=innodb default charset=utf8mb4 comment='管理员授权关系表';
|
|
|
|
-- 9. 管理员宿舍楼权限关系表
|
|
drop table if exists `xg_dorm_manager_building`;
|
|
create table `xg_dorm_manager_building` (
|
|
`id` bigint(20) not null comment '主键ID',
|
|
`manager_id` bigint(20) not null comment '管理员ID',
|
|
`building_id` bigint(20) not null comment '宿舍楼ID',
|
|
`status` char(1) default '0' comment '状态(0有效 1已撤销)',
|
|
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
|
`tenant_id` bigint(20) default '0' comment '租户编号',
|
|
`create_by` bigint(20) default null comment '创建者',
|
|
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
|
`create_time` datetime default null comment '创建时间',
|
|
`update_by` bigint(20) default null comment '更新者',
|
|
`update_time` datetime default null comment '更新时间',
|
|
`remark` varchar(500) default null comment '备注',
|
|
primary key (`id`),
|
|
unique key `uk_manager_building` (`manager_id`, `building_id`),
|
|
key `idx_manager_id` (`manager_id`),
|
|
key `idx_building_id` (`building_id`)
|
|
) engine=innodb default charset=utf8mb4 comment='管理员宿舍楼权限关系表';
|
|
|
|
-- 10. 二级学院宿舍管理员信息表
|
|
drop table if exists `xg_dorm_college_manager`;
|
|
create table `xg_dorm_college_manager` (
|
|
`id` bigint(20) not null comment '主键ID',
|
|
`manager_name` varchar(100) not null comment '管理员姓名',
|
|
`college_id` bigint(20) not null comment '所属学院ID',
|
|
`user_id` bigint(20) default null comment '关联用户ID',
|
|
`phone` varchar(20) default null comment '联系电话',
|
|
`gender` char(1) default '0' comment '性别(0男 1女 2未知)',
|
|
`status` char(1) default '0' comment '状态(0正常 1停用)',
|
|
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
|
`tenant_id` bigint(20) default '0' comment '租户编号',
|
|
`create_by` bigint(20) default null comment '创建者',
|
|
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
|
`create_time` datetime default null comment '创建时间',
|
|
`update_by` bigint(20) default null comment '更新者',
|
|
`update_time` datetime default null comment '更新时间',
|
|
`remark` varchar(500) default null comment '备注',
|
|
primary key (`id`),
|
|
key `idx_college_id` (`college_id`),
|
|
key `idx_user_id` (`user_id`)
|
|
) engine=innodb default charset=utf8mb4 comment='二级学院宿舍管理员信息表';
|
|
|
|
-- 11. 二级学院床位绑定关系表
|
|
drop table if exists `xg_dorm_college_bed`;
|
|
create table `xg_dorm_college_bed` (
|
|
`id` bigint(20) not null comment '主键ID',
|
|
`college_id` bigint(20) not null comment '学院ID',
|
|
`bed_id` bigint(20) not null comment '床位ID',
|
|
`building_id` bigint(20) not null comment '宿舍楼ID',
|
|
`room_id` bigint(20) not null comment '房间ID',
|
|
`status` char(1) default '0' comment '状态(0正常 1已解除)',
|
|
`assign_time` datetime default null comment '分配时间',
|
|
`release_time` datetime default null comment '到期解除时间',
|
|
`deleted` char(1) default '0' comment '删除标志(0代表存在 1代表删除)',
|
|
`tenant_id` bigint(20) default '0' comment '租户编号',
|
|
`create_by` bigint(20) default null comment '创建者',
|
|
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
|
`create_time` datetime default null comment '创建时间',
|
|
`update_by` bigint(20) default null comment '更新者',
|
|
`update_time` datetime default null comment '更新时间',
|
|
`remark` varchar(500) default null comment '备注',
|
|
primary key (`id`),
|
|
unique key `uk_college_bed` (`college_id`, `bed_id`),
|
|
key `idx_college_id` (`college_id`),
|
|
key `idx_bed_id` (`bed_id`),
|
|
key `idx_building_id` (`building_id`),
|
|
key `idx_room_id` (`room_id`)
|
|
) engine=innodb default charset=utf8mb4 comment='二级学院床位绑定关系表'; |