提交代码
This commit is contained in:
1 parent
ac1c2e69be
commit
bee68f318d
14 files changed
+3761
No files matched your search
@@ -0,0 +1,65 @@
|
||||
-- 宿舍违纪记录管理数据字典配置脚本(超简化版)
|
||||
-- 来源:宿舍违纪记录数据模型设计
|
||||
-- 用途:配置宿舍违纪记录模块所需的数据字典项(仅主表相关字典)
|
||||
-- 维护人:数据库设计团队
|
||||
-- 日期:2025-01-28
|
||||
|
||||
-- =============================================================================
|
||||
-- 1. 违纪类型字典
|
||||
-- =============================================================================
|
||||
INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, create_dept, create_by, create_time, update_by, update_time, remark)
|
||||
VALUES (NEXT VALUE FOR sys_dict_type_seq, '000000', '宿舍违纪类型', 'dorm_violation_type', 103, 1, NOW(), 1, NOW(), '宿舍违纪类型分类');
|
||||
|
||||
INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, create_dept, create_by, create_time, update_by, update_time, remark)
|
||||
VALUES
|
||||
-- 卫生违纪类
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 1, '垃圾乱扔', 'WS001001', 'dorm_violation_type', '', 'warning', 'N', 103, 1, NOW(), 1, NOW(), '在宿舍内外乱扔垃圾'),
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 2, '床铺不整', 'WS001002', 'dorm_violation_type', '', 'warning', 'N', 103, 1, NOW(), 1, NOW(), '床铺整理不规范'),
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 3, '物品摆放混乱', 'WS001003', 'dorm_violation_type', '', 'warning', 'N', 103, 1, NOW(), 1, NOW(), '个人物品摆放不规范'),
|
||||
|
||||
-- 纪律违纪类
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 11, '晚归违纪', 'JL001001', 'dorm_violation_type', '', 'info', 'N', 103, 1, NOW(), 1, NOW(), '超过规定时间归宿'),
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 12, '噪音扰民', 'JL001002', 'dorm_violation_type', '', 'info', 'N', 103, 1, NOW(), 1, NOW(), '在休息时间制造噪音'),
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 13, '夜不归宿', 'JL001003', 'dorm_violation_type', '', 'danger', 'N', 103, 1, NOW(), 1, NOW(), '整夜未在宿舍住宿'),
|
||||
|
||||
-- 安全违纪类
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 21, '违规用电', 'AQ001001', 'dorm_violation_type', '', 'danger', 'N', 103, 1, NOW(), 1, NOW(), '使用违规电器或私拉电线'),
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 22, '吸烟违纪', 'AQ001002', 'dorm_violation_type', '', 'danger', 'N', 103, 1, NOW(), 1, NOW(), '在宿舍内吸烟'),
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 23, '明火使用', 'AQ001003', 'dorm_violation_type', '', 'danger', 'N', 103, 1, NOW(), 1, NOW(), '在宿舍内使用明火'),
|
||||
|
||||
-- 物品违纪类
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 31, '损坏公物', 'WP001001', 'dorm_violation_type', '', 'primary', 'N', 103, 1, NOW(), 1, NOW(), '故意或过失损坏公共物品'),
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 32, '私改设施', 'WP001002', 'dorm_violation_type', '', 'primary', 'N', 103, 1, NOW(), 1, NOW(), '私自改动宿舍设施'),
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 33, '盗用他人物品', 'WP001003', 'dorm_violation_type', '', 'danger', 'N', 103, 1, NOW(), 1, NOW(), '盗用或损坏他人物品');
|
||||
|
||||
-- =============================================================================
|
||||
-- 2. 违纪等级字典
|
||||
-- =============================================================================
|
||||
INSERT INTO sys_dict_type (dict_id, tenant_id, dict_name, dict_type, create_dept, create_by, create_time, update_by, update_time, remark)
|
||||
VALUES (NEXT VALUE FOR sys_dict_type_seq, '000000', '违纪等级', 'dorm_violation_level', 103, 1, NOW(), 1, NOW(), '宿舍违纪等级分类');
|
||||
|
||||
INSERT INTO sys_dict_data (dict_code, tenant_id, dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, create_dept, create_by, create_time, update_by, update_time, remark)
|
||||
VALUES
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 1, '轻微', '1', 'dorm_violation_level', '', 'success', 'Y', 103, 1, NOW(), 1, NOW(), '轻微违纪'),
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 2, '一般', '2', 'dorm_violation_level', '', 'warning', 'N', 103, 1, NOW(), 1, NOW(), '一般违纪'),
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 3, '严重', '3', 'dorm_violation_level', '', 'danger', 'N', 103, 1, NOW(), 1, NOW(), '严重违纪'),
|
||||
(NEXT VALUE FOR sys_dict_data_seq, '000000', 4, '特别严重', '4', 'dorm_violation_level', '', 'danger', 'N', 103, 1, NOW(), 1, NOW(), '特别严重违纪');
|
||||
|
||||
-- =============================================================================
|
||||
-- 数据字典配置完成提示
|
||||
-- =============================================================================
|
||||
-- 宿舍违纪记录管理数据字典配置脚本执行完成(超简化版)
|
||||
-- 包含字典类型:
|
||||
-- 1. dorm_violation_type - 宿舍违纪类型(12个违纪类型)
|
||||
-- 2. dorm_violation_level - 违纪等级(4个等级)
|
||||
--
|
||||
-- 功能特点:
|
||||
-- 1. 超级简化设计,仅保留核心字典
|
||||
-- 2. 违纪类型使用字典管理,无需单独表
|
||||
-- 3. 附件使用OSS ID存储,无需附件类型字典
|
||||
-- 4. 移除了处罚、审核、累计等复杂字典
|
||||
--
|
||||
-- 注意事项:
|
||||
-- 1. 违纪类型编码采用分类前缀(WS卫生、JL纪律、AQ安全、WP物品)
|
||||
-- 2. 所有字典数据采用项目统一规范
|
||||
-- 3. 专注于记录功能,大幅简化了数据字典结构
|
||||
@@ -0,0 +1,96 @@
|
||||
-- 宿舍违纪记录管理数据库建表脚本(超简化版)
|
||||
-- 来源:宿舍违纪记录数据模型设计
|
||||
-- 用途:创建宿舍违纪记录管理所需的数据库表(仅主表)
|
||||
-- 维护人:数据库设计团队
|
||||
-- 日期:2025-01-28
|
||||
|
||||
-- =============================================================================
|
||||
-- 1. 宿舍违纪记录表 (xg_dorm_violation) - 唯一核心表
|
||||
-- =============================================================================
|
||||
DROP TABLE IF EXISTS `xg_dorm_violation`;
|
||||
CREATE TABLE `xg_dorm_violation` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '违纪记录ID(主键)',
|
||||
|
||||
-- 学生信息(冗余存储,提高查询性能)
|
||||
`student_id` bigint(20) NOT NULL COMMENT '学生ID',
|
||||
`student_name` varchar(100) NOT NULL COMMENT '学生姓名',
|
||||
`student_no` varchar(50) NOT NULL COMMENT '学号',
|
||||
`college_id` bigint(20) DEFAULT NULL COMMENT '学院ID',
|
||||
`college_name` varchar(100) DEFAULT NULL COMMENT '学院名称',
|
||||
`major_id` bigint(20) DEFAULT NULL COMMENT '专业ID',
|
||||
`major_name` varchar(100) DEFAULT NULL COMMENT '专业名称',
|
||||
`class_id` bigint(20) DEFAULT NULL COMMENT '班级ID',
|
||||
`class_name` varchar(100) DEFAULT NULL COMMENT '班级名称',
|
||||
|
||||
-- 宿舍位置信息(复用现有宿舍管理结构)
|
||||
`campus_id` bigint(20) DEFAULT NULL COMMENT '校区ID',
|
||||
`campus_name` varchar(100) DEFAULT NULL COMMENT '校区名称',
|
||||
`area_id` bigint(20) DEFAULT NULL COMMENT '宿舍区域ID',
|
||||
`area_name` varchar(100) DEFAULT NULL COMMENT '宿舍区域名称',
|
||||
`building_id` bigint(20) NOT NULL COMMENT '宿舍楼ID',
|
||||
`building_name` varchar(100) NOT NULL COMMENT '宿舍楼名称',
|
||||
`room_id` bigint(20) NOT NULL COMMENT '宿舍房间ID',
|
||||
`room_name` varchar(50) NOT NULL COMMENT '房间名称',
|
||||
`bed_id` bigint(20) DEFAULT NULL COMMENT '床位ID',
|
||||
`bed_name` varchar(20) DEFAULT NULL COMMENT '床位名称',
|
||||
|
||||
-- 违纪基本信息
|
||||
`violation_type` varchar(50) NOT NULL COMMENT '违纪类型',
|
||||
`violation_level` char(1) NOT NULL COMMENT '违纪等级:1轻微 2一般 3严重 4特别严重',
|
||||
`violation_time` datetime NOT NULL COMMENT '违纪发生时间',
|
||||
`violation_description` text NOT NULL COMMENT '违纪行为描述',
|
||||
|
||||
-- 附加信息
|
||||
`involved_students` text DEFAULT NULL COMMENT '涉及其他学生信息(JSON格式)',
|
||||
-- 附件信息(OSS存储)
|
||||
`attachment_oss_ids` text DEFAULT NULL COMMENT '附件OSS ID列表(逗号分隔)',
|
||||
|
||||
-- 系统字段
|
||||
`deleted` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 1代表删除)',
|
||||
`tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户编号',
|
||||
`create_dept` bigint(20) DEFAULT NULL 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`),
|
||||
KEY `idx_student_id` (`student_id`),
|
||||
KEY `idx_student_no` (`student_no`),
|
||||
KEY `idx_college_id` (`college_id`),
|
||||
KEY `idx_building_id` (`building_id`),
|
||||
KEY `idx_room_id` (`room_id`),
|
||||
KEY `idx_violation_type` (`violation_type`),
|
||||
KEY `idx_violation_time` (`violation_time`),
|
||||
KEY `idx_violation_level` (`violation_level`),
|
||||
KEY `idx_tenant_id` (`tenant_id`),
|
||||
KEY `idx_deleted` (`deleted`),
|
||||
|
||||
-- 复合索引(统计查询优化)
|
||||
KEY `idx_college_time` (`college_id`, `violation_time`),
|
||||
KEY `idx_building_level` (`building_id`, `violation_level`),
|
||||
KEY `idx_student_time` (`student_id`, `violation_time`),
|
||||
KEY `idx_type_level` (`violation_type`, `violation_level`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='宿舍违纪记录表';
|
||||
|
||||
-- =============================================================================
|
||||
-- 数据库建表脚本执行完成提示
|
||||
-- =============================================================================
|
||||
-- 宿舍违纪记录管理数据库建表脚本执行完成(超简化版)
|
||||
--
|
||||
-- 创建表:
|
||||
-- 1. xg_dorm_violation - 宿舍违纪记录主表(包含所有核心功能)
|
||||
--
|
||||
-- 设计特点:
|
||||
-- 1. 单表设计,降低复杂度
|
||||
-- 2. 违纪类型使用字典管理
|
||||
-- 3. 附件使用OSS ID存储
|
||||
-- 4. 冗余存储关键信息,提高查询性能
|
||||
-- 5. 完整的索引设计,支持高效查询和统计
|
||||
--
|
||||
-- 注意事项:
|
||||
-- 1. 违纪类型使用sys_dict_data表管理
|
||||
-- 2. 附件OSS ID使用逗号分隔存储
|
||||
-- 3. 所有字段遵循项目统一规范
|
||||
-- 4. 支持多租户和逻辑删除
|
||||
@@ -0,0 +1,363 @@
|
||||
# 宿舍违纪记录管理数据模型设计文档(超简化版)
|
||||
|
||||
## 📋 文档信息
|
||||
|
||||
| 项目 | 信息 |
|
||||
|------|------|
|
||||
| **项目名称** | 校园管理系统 - 宿舍违纪记录管理模块 |
|
||||
| **数据库版本** | MySQL 8.0+ |
|
||||
| **文档版本** | V2.0.0(超简化版) |
|
||||
| **创建时间** | 2025-01-28 |
|
||||
| **创建人员** | 数据库设计团队 |
|
||||
| **审核状态** | 待审核 |
|
||||
|
||||
## 🎯 设计目标
|
||||
|
||||
### 核心目标
|
||||
- 建立最简化的宿舍违纪记录管理系统
|
||||
- 使用单表存储所有核心数据,降低系统复杂度
|
||||
- 违纪类型通过字典管理,便于维护和扩展
|
||||
- 附件通过OSS ID字符串存储,简化文件管理
|
||||
|
||||
### 设计原则
|
||||
- **极简设计**:单表设计,减少表关联复杂度
|
||||
- **字典驱动**:违纪类型使用系统字典管理
|
||||
- **OSS存储**:附件使用阿里云OSS,表中仅存储ID
|
||||
- **查询优化**:通过索引设计支持高效查询和统计
|
||||
- **性能第一**:冗余存储关键信息,避免复杂JOIN
|
||||
|
||||
## 🗄️ 数据库表设计
|
||||
|
||||
### 唯一核心表
|
||||
|
||||
#### 宿舍违纪记录表 (xg_dorm_violation)
|
||||
**表说明**:违纪记录管理的唯一核心表,包含所有功能
|
||||
|
||||
**核心字段组**:
|
||||
|
||||
##### 📊 学生信息(冗余存储)
|
||||
- **student_id**, **student_name**, **student_no**:学生基本信息
|
||||
- **college_id**, **college_name**:学院信息
|
||||
- **class_id**, **class_name**:班级信息
|
||||
|
||||
##### 🏠 宿舍位置信息(充分复用现有结构)
|
||||
- **campus_id**, **campus_name**:校区信息
|
||||
- **area_id**, **area_name**:宿舍区域信息
|
||||
- **building_id**, **building_name**:宿舍楼信息(必填)
|
||||
- **room_id**, **room_no**:房间信息(必填)
|
||||
- **bed_id**, **bed_no**:床位信息
|
||||
|
||||
##### 🚨 违纪基本信息
|
||||
- **violation_type_dict**:违纪类型(字典值,如WS001001)
|
||||
- **violation_level**:违纪等级(1轻微 2一般 3严重 4特别严重)
|
||||
- **violation_time**:违纪发生时间
|
||||
- **violation_description**:违纪行为描述
|
||||
- **violation_location**:违纪具体位置
|
||||
|
||||
##### 🔍 发现信息
|
||||
- **discoverer_type**:发现人类型(1宿管员 2学生 3巡查员 4其他)
|
||||
- **discoverer_id**, **discoverer_name**:发现人信息
|
||||
- **discovery_method**:发现方式(1日常检查 2举报 3巡查 4其他)
|
||||
- **discovery_time**:发现时间
|
||||
|
||||
##### 📋 记录状态和评分
|
||||
- **record_status**:记录状态(1已记录 2已确认 3已归档)
|
||||
- **severity_score**:严重程度评分(0-100)
|
||||
- **is_repeat**, **repeat_count**:重复违纪信息
|
||||
|
||||
##### 📎 附件信息(OSS存储)
|
||||
- **attachment_oss_ids**:附件OSS ID列表(逗号分隔字符串)
|
||||
- **attachment_count**:附件数量
|
||||
|
||||
**设计特点**:
|
||||
- **单表设计**:所有功能集中在一张表,减少复杂度
|
||||
- **冗余存储**:关键信息冗余存储,避免复杂JOIN查询
|
||||
- **字典管理**:违纪类型使用系统字典,便于维护
|
||||
- **OSS集成**:附件使用阿里云OSS存储,表中仅存ID
|
||||
- **索引优化**:完整的索引设计,支持高效查询
|
||||
|
||||
### 🔗 与现有系统的关系
|
||||
|
||||
#### 宿舍管理系统集成
|
||||
违纪记录管理充分复用现有宿舍管理数据结构:
|
||||
|
||||
```sql
|
||||
-- 关联关系(查询时关联,表结构独立)
|
||||
xg_dorm_violation.campus_id -> xg_dorm_campus.id
|
||||
xg_dorm_violation.area_id -> xg_dorm_area.id
|
||||
xg_dorm_violation.building_id -> xg_dorm_building.id
|
||||
xg_dorm_violation.room_id -> xg_dorm_room.id
|
||||
xg_dorm_violation.bed_id -> xg_dorm_bed.id
|
||||
xg_dorm_violation.student_id -> xg_dorm_bed_student.student_id
|
||||
```
|
||||
|
||||
#### 系统字典集成
|
||||
违纪类型通过系统字典管理:
|
||||
|
||||
```sql
|
||||
-- 字典关联
|
||||
xg_dorm_violation.violation_type_dict -> sys_dict_data.dict_value
|
||||
-- 其中 dict_type = 'dorm_violation_type'
|
||||
```
|
||||
|
||||
#### 用户系统集成
|
||||
发现人和处理人信息关联:
|
||||
|
||||
```sql
|
||||
-- 关联关系
|
||||
xg_dorm_violation.discoverer_id -> sys_user.user_id
|
||||
xg_dorm_violation.handler_id -> sys_user.user_id
|
||||
```
|
||||
|
||||
## 📊 索引设计
|
||||
|
||||
### 1. 基础查询索引
|
||||
```sql
|
||||
-- 核心查询索引
|
||||
KEY `idx_student_id` (`student_id`) -- 按学生查询
|
||||
KEY `idx_student_no` (`student_no`) -- 按学号查询
|
||||
KEY `idx_college_id` (`college_id`) -- 按学院查询
|
||||
KEY `idx_building_id` (`building_id`) -- 按宿舍楼查询
|
||||
KEY `idx_room_id` (`room_id`) -- 按房间查询
|
||||
KEY `idx_violation_type` (`violation_type_dict`) -- 按违纪类型查询
|
||||
KEY `idx_violation_time` (`violation_time`) -- 按违纪时间查询
|
||||
KEY `idx_record_status` (`record_status`) -- 按记录状态查询
|
||||
KEY `idx_violation_level` (`violation_level`) -- 按违纪等级查询
|
||||
KEY `idx_is_repeat` (`is_repeat`) -- 按重复违纪查询
|
||||
```
|
||||
|
||||
### 2. 复合索引(统计优化)
|
||||
```sql
|
||||
-- 统计分析优化索引
|
||||
KEY `idx_college_time` (`college_id`, `violation_time`)
|
||||
KEY `idx_building_level` (`building_id`, `violation_level`)
|
||||
KEY `idx_student_time` (`student_id`, `violation_time`)
|
||||
KEY `idx_type_level` (`violation_type_dict`, `violation_level`)
|
||||
KEY `idx_status_time` (`record_status`, `create_time`)
|
||||
```
|
||||
|
||||
## 📈 业务逻辑设计
|
||||
|
||||
### 1. 违纪类型字典管理
|
||||
```sql
|
||||
-- 违纪类型编码规则
|
||||
WS001001 - 垃圾乱扔(卫生类)
|
||||
JL001001 - 晚归违纪(纪律类)
|
||||
AQ001001 - 违规用电(安全类)
|
||||
WP001001 - 损坏公物(物品类)
|
||||
|
||||
-- 编码格式:分类前缀 + 6位数字
|
||||
-- WS: 卫生违纪, JL: 纪律违纪, AQ: 安全违纪, WP: 物品违纪
|
||||
```
|
||||
|
||||
### 2. 附件OSS存储
|
||||
```sql
|
||||
-- 附件ID存储格式
|
||||
attachment_oss_ids = "oss_id_1,oss_id_2,oss_id_3"
|
||||
|
||||
-- 解析方式
|
||||
String[] ossIds = attachmentOssIds.split(",");
|
||||
```
|
||||
|
||||
### 3. 违纪等级评分机制
|
||||
```sql
|
||||
-- 违纪等级与评分对应
|
||||
'1' (轻微): 0-20分
|
||||
'2' (一般): 21-40分
|
||||
'3' (严重): 41-70分
|
||||
'4' (特别严重): 71-100分
|
||||
```
|
||||
|
||||
### 4. 记录状态流转
|
||||
```sql
|
||||
-- 简化状态流转
|
||||
'1' (已记录) -> '2' (已确认) -> '3' (已归档)
|
||||
```
|
||||
|
||||
### 5. 重复违纪检测
|
||||
```sql
|
||||
-- 检测逻辑
|
||||
同一学生 + 相同违纪类型 + 时间窗口内 = 重复违纪
|
||||
时间窗口: 当前学期或最近6个月
|
||||
```
|
||||
|
||||
## 📋 数据字典
|
||||
|
||||
### 核心字典类型(5个)
|
||||
|
||||
| 字典类型 | 字典名称 | 说明 |
|
||||
|---------|---------|------|
|
||||
| dorm_violation_type | 宿舍违纪类型 | 12种违纪类型,按分类前缀编码 |
|
||||
| dorm_violation_level | 违纪等级 | 轻微、一般、严重、特别严重 |
|
||||
| dorm_discoverer_type | 发现人类型 | 宿管员、学生、巡查员、其他 |
|
||||
| dorm_discovery_method | 发现方式 | 日常检查、举报、巡查、其他 |
|
||||
| dorm_record_status | 违纪记录状态 | 已记录、已确认、已归档 |
|
||||
|
||||
### 违纪类型详细清单
|
||||
|
||||
#### 🧹 卫生违纪类(WS)
|
||||
- **WS001001** - 垃圾乱扔:在宿舍内外乱扔垃圾
|
||||
- **WS001002** - 床铺不整:床铺整理不规范
|
||||
- **WS001003** - 物品摆放混乱:个人物品摆放不规范
|
||||
|
||||
#### ⏰ 纪律违纪类(JL)
|
||||
- **JL001001** - 晚归违纪:超过规定时间归宿
|
||||
- **JL001002** - 噪音扰民:在休息时间制造噪音
|
||||
- **JL001003** - 夜不归宿:整夜未在宿舍住宿
|
||||
|
||||
#### ⚠️ 安全违纪类(AQ)
|
||||
- **AQ001001** - 违规用电:使用违规电器或私拉电线
|
||||
- **AQ001002** - 吸烟违纪:在宿舍内吸烟
|
||||
- **AQ001003** - 明火使用:在宿舍内使用明火
|
||||
|
||||
#### 🛠️ 物品违纪类(WP)
|
||||
- **WP001001** - 损坏公物:故意或过失损坏公共物品
|
||||
- **WP001002** - 私改设施:私自改动宿舍设施
|
||||
- **WP001003** - 盗用他人物品:盗用或损坏他人物品
|
||||
|
||||
## 🚀 性能优化
|
||||
|
||||
### 1. 查询优化策略
|
||||
- **索引覆盖**:主要查询字段都有对应索引
|
||||
- **复合索引**:统计查询使用复合索引优化
|
||||
- **冗余字段**:避免复杂JOIN,直接查询单表
|
||||
- **分页优化**:使用limit offset优化大数据量查询
|
||||
|
||||
### 2. 存储优化策略
|
||||
- **OSS集成**:附件文件外部存储,减轻数据库压力
|
||||
- **字符串存储**:附件ID使用逗号分隔,简化存储结构
|
||||
- **数据压缩**:JSON格式存储复杂字段(如涉及其他学生信息)
|
||||
|
||||
### 3. 缓存策略
|
||||
- **字典缓存**:违纪类型等字典数据Redis缓存
|
||||
- **热点数据**:常用查询结果缓存
|
||||
- **统计缓存**:定时更新统计数据缓存
|
||||
|
||||
## 📊 统计分析功能
|
||||
|
||||
### 1. 基础统计
|
||||
- 按时间段的违纪记录统计
|
||||
- 按学院、宿舍楼的违纪分布
|
||||
- 按违纪类型的频次统计
|
||||
- 违纪等级分布分析
|
||||
|
||||
### 2. 趋势分析
|
||||
- 违纪记录的时间趋势
|
||||
- 重复违纪学生识别
|
||||
- 违纪热点区域分析
|
||||
- 违纪类型变化趋势
|
||||
|
||||
### 3. 对比分析
|
||||
- 不同学院违纪情况对比
|
||||
- 不同宿舍楼违纪率对比
|
||||
- 不同时间段违纪情况对比
|
||||
|
||||
## 🔒 数据安全设计
|
||||
|
||||
### 1. 敏感信息保护
|
||||
- 学生身份信息的访问权限控制
|
||||
- 违纪记录的查看权限分级
|
||||
- OSS附件的安全访问控制
|
||||
|
||||
### 2. 审计追踪
|
||||
- 完整的操作日志记录
|
||||
- 数据变更的版本追踪
|
||||
|
||||
### 3. 数据备份
|
||||
- 违纪记录的定期备份
|
||||
- OSS附件的安全存储
|
||||
- 历史数据的归档管理
|
||||
|
||||
## 📝 变更记录
|
||||
|
||||
| 版本 | 日期 | 变更内容 | 变更人 |
|
||||
|------|------|----------|--------|
|
||||
| V2.0.0 | 2025-01-28 | 超简化版设计:单表设计,违纪类型使用字典,附件使用OSS ID | 数据库设计团队 |
|
||||
| V1.0.0 | 2025-01-28 | 简化版初始创建,专注违纪记录功能,移除处罚和审核模块 | 数据库设计团队 |
|
||||
|
||||
## 📄 相关文档
|
||||
|
||||
| 文档名称 | 文档路径 | 说明 |
|
||||
|---------|---------|------|
|
||||
| 建表脚本 | `宿舍违纪管理数据库建表脚本.sql` | 超简化版数据库建表SQL(仅1张表) |
|
||||
| 数据字典 | `宿舍违纪管理数据字典配置.sql` | 超简化版字典配置(5个字典类型) |
|
||||
| 宿舍管理设计 | `宿舍管理数据库设计.md` | 现有宿舍管理数据模型 |
|
||||
| 数据库规范 | `../mysql-database-standard.md` | 项目数据库设计规范 |
|
||||
|
||||
## 🎯 功能特点
|
||||
|
||||
### 1. 超简化设计理念
|
||||
- **单表设计**:所有功能集中在一张表,极大降低复杂度
|
||||
- **字典驱动**:违纪类型通过系统字典管理,便于维护和扩展
|
||||
- **OSS集成**:附件使用云存储,表中仅存储ID,简化文件管理
|
||||
- **性能优先**:通过冗余存储避免复杂关联查询
|
||||
|
||||
### 2. 核心功能
|
||||
- 违纪记录的增删改查
|
||||
- 违纪类型的字典化管理
|
||||
- 重复违纪的自动检测
|
||||
- 附件文件的OSS存储管理
|
||||
- 多维度的统计分析
|
||||
|
||||
### 3. 系统集成
|
||||
- 充分复用现有宿舍管理数据结构
|
||||
- 与用户管理系统无缝集成
|
||||
- 与系统字典管理完美融合
|
||||
- 遵循项目统一的数据库设计规范
|
||||
|
||||
## 🎯 技术优势
|
||||
|
||||
### 1. 开发效率
|
||||
- **单表操作**:减少复杂的多表关联查询
|
||||
- **字典管理**:违纪类型维护简单,无需修改表结构
|
||||
- **OSS集成**:文件管理交给专业云服务,简化开发
|
||||
|
||||
### 2. 运维效率
|
||||
- **部署简单**:只需创建一张表和几个字典
|
||||
- **维护容易**:数据结构简单,问题排查快速
|
||||
- **扩展灵活**:新增违纪类型只需添加字典项
|
||||
|
||||
### 3. 性能优势
|
||||
- **查询高效**:单表查询,避免复杂JOIN
|
||||
- **索引优化**:针对性的索引设计,支持高效统计
|
||||
- **存储优化**:大文件外部存储,减轻数据库压力
|
||||
|
||||
## 🎯 后续扩展
|
||||
|
||||
### 1. 功能扩展方向
|
||||
- 违纪预警和风险评估
|
||||
- 违纪数据的智能分析
|
||||
- 与学生综合评价系统的集成
|
||||
- 移动端违纪上报功能
|
||||
|
||||
### 2. 性能扩展方向
|
||||
- 大数据量的分表策略
|
||||
- 实时统计和报表功能
|
||||
- 违纪图片的AI识别功能
|
||||
- 多校区数据的同步机制
|
||||
|
||||
### 3. 管理扩展方向
|
||||
- 违纪数据的导出功能
|
||||
- 与家长通知系统的对接(如需要)
|
||||
- 违纪数据的开放API接口
|
||||
- 历史数据的分析报告生成
|
||||
|
||||
## 💡 使用建议
|
||||
|
||||
### 1. 开发建议
|
||||
- 使用单表DAO模式,简化数据访问层
|
||||
- 违纪类型从字典缓存中获取,提高性能
|
||||
- 附件上传直接到OSS,异步更新记录表
|
||||
- 统计查询优先使用复合索引
|
||||
|
||||
### 2. 维护建议
|
||||
- 定期清理OSS中的孤立文件
|
||||
- 监控单表数据量,适时进行数据归档
|
||||
- 定期更新字典缓存,保持数据一致性
|
||||
- 建立完善的数据备份和恢复机制
|
||||
|
||||
### 3. 扩展建议
|
||||
- 如需处罚功能,可单独增加处罚表关联违纪记录
|
||||
- 如需工作流,可集成Warm-Flow框架
|
||||
- 如需复杂统计,可考虑数据仓库方案
|
||||
- 如需移动端,优先考虑API接口设计
|
||||
Reference in new issue
Block a user