Initial commit: 高校创新创业项目孵化平台设计文档

This commit is contained in:
likingcode
2026-03-01 16:24:21 +00:00
commit ca55ede9a8
2 changed files with 790 additions and 0 deletions

313
01-需求分析文档.md Normal file
View File

@@ -0,0 +1,313 @@
# 高校创新创业项目孵化平台 - 需求分析文档
## 一、用户角色分析
### 1.1 角色定义
| 角色 | 描述 | 核心职责 |
|------|------|----------|
| 学生 | 平台主要使用者,创新创业项目的申报者 | 项目申报、进度更新、成果提交、学分查询 |
| 教师 | 项目指导教师和评审专家 | 项目指导、评审打分、意见反馈 |
| 管理员 | 系统运维和业务管理 | 用户管理、项目管理、规则配置、数据统计 |
### 1.2 角色权限矩阵
| 功能模块 | 学生 | 教师 | 管理员 |
|----------|------|------|--------|
| 用户注册/登录 | ✅ | ✅ | ✅ |
| 个人信息管理 | ✅ | ✅ | ✅ |
| 项目申报 | ✅ | ❌ | ✅ |
| 项目查看(自己) | ✅ | ❌ | ✅ |
| 项目查看(全部) | ❌ | ✅(分配) | ✅ |
| 项目评审 | ❌ | ✅ | ✅ |
| 成果提交 | ✅ | ❌ | ✅ |
| 学分查询 | ✅ | ✅(指导学生) | ✅ |
| 规则配置 | ❌ | ❌ | ✅ |
| 用户管理 | ❌ | ❌ | ✅ |
| 数据统计 | ❌ | ❌ | ✅ |
### 1.3 用户属性详细设计
#### 学生属性
- 学号(唯一标识)
- 姓名
- 性别
- 学院
- 专业
- 年级
- 班级
- 联系电话
- 邮箱
- 指导教师ID
#### 教师属性
- 工号(唯一标识)
- 姓名
- 性别
- 学院
- 职称
- 联系电话
- 邮箱
- 研究方向
#### 管理员属性
- 管理员账号
- 姓名
- 权限范围
- 联系方式
---
## 二、功能模块拆分
### 2.1 模块总览图(文字描述)
```
高校创新创业项目孵化平台
├── 用户中心模块
│ ├── 用户注册
│ ├── 用户登录/登出
│ ├── 个人信息管理
│ └── 密码修改/重置
├── 项目管理模块
│ ├── 项目申报
│ ├── 项目查询
│ ├── 项目修改
│ ├── 项目进度跟踪
│ └── 项目归档
├── 评审管理模块
│ ├── 评审任务分配
│ ├── 在线评审
│ ├── 评审意见填写
│ └── 评审结果查询
├── 成果管理模块
│ ├── 成果录入
│ ├── 成果附件上传
│ ├── 成果审核
│ └── 成果统计
├── 学分认定模块
│ ├── 学分规则配置
│ ├── 学分自动计算
│ ├── 学分明细查询
│ └── 学分异议处理
├── 数据统计模块
│ ├── 项目统计
│ ├── 成果统计
│ ├── 学分统计
│ └── 可视化报表
└── 系统管理模块
├── 用户管理
├── 角色权限管理
├── 系统配置
└── 操作日志
```
### 2.2 各模块功能详细说明
#### 2.2.1 用户中心模块
| 功能点 | 功能描述 | 输入 | 输出 | 角色 |
|--------|----------|------|------|------|
| 用户注册 | 学生/教师自助注册 | 账号、密码、身份信息 | 注册结果 | 全部 |
| 用户登录 | 账号密码登录,支持记住密码 | 账号、密码 | Token、用户信息 | 全部 |
| 个人信息管理 | 修改个人信息 | 修改字段 | 修改结果 | 全部 |
| 密码修改 | 修改登录密码 | 原密码、新密码 | 修改结果 | 全部 |
#### 2.2.2 项目管理模块
| 功能点 | 功能描述 | 输入 | 输出 | 角色 |
|--------|----------|------|------|------|
| 项目申报 | 提交新项目申请 | 项目名称、类型、描述、成员、预算 | 申报结果 | 学生 |
| 项目查询 | 按条件查询项目 | 查询条件 | 项目列表 | 全部 |
| 项目修改 | 修改项目信息 | 修改内容 | 修改结果 | 学生(自己的) |
| 项目进度跟踪 | 更新项目进度 | 进度信息、附件 | 更新结果 | 学生 |
| 项目归档 | 项目结题后归档 | 项目ID | 归档结果 | 管理员 |
#### 2.2.3 评审管理模块
| 功能点 | 功能描述 | 输入 | 输出 | 角色 |
|--------|----------|------|------|------|
| 评审任务分配 | 分配评审专家 | 项目ID、教师ID | 分配结果 | 管理员 |
| 在线评审 | 填写评审意见 | 评审表单 | 提交结果 | 教师 |
| 评审意见填写 | 详细评审意见 | 意见内容、评分 | 保存结果 | 教师 |
| 评审结果查询 | 查看评审结果 | 项目ID | 评审详情 | 学生/教师 |
#### 2.2.4 成果管理模块
| 功能点 | 功能描述 | 输入 | 输出 | 角色 |
|--------|----------|------|------|------|
| 成果录入 | 录入项目成果 | 成果类型、描述、附件 | 录入结果 | 学生 |
| 成果附件上传 | 上传证明材料 | 文件 | 文件URL | 学生 |
| 成果审核 | 审核成果真实性 | 审核意见 | 审核结果 | 教师/管理员 |
| 成果统计 | 统计成果数量 | 统计条件 | 统计报表 | 管理员 |
#### 2.2.5 学分认定模块
| 功能点 | 功能描述 | 输入 | 输出 | 角色 |
|--------|----------|------|------|------|
| 学分规则配置 | 配置学分计算规则 | 规则参数 | 配置结果 | 管理员 |
| 学分自动计算 | 根据成果计算学分 | 成果信息 | 学分明细 | 系统 |
| 学分明细查询 | 查看学分详情 | 学生ID | 学分明细 | 学生/教师 |
| 学分异议处理 | 处理学分异议申请 | 异议内容 | 处理结果 | 管理员 |
#### 2.2.6 数据统计模块
| 功能点 | 功能描述 | 输入 | 输出 | 角色 |
|--------|----------|------|------|------|
| 项目统计 | 项目数量、状态分布 | 时间范围 | 统计数据 | 管理员 |
| 成果统计 | 成果类型、级别分布 | 时间范围 | 统计数据 | 管理员 |
| 学分统计 | 学分分布、平均学分 | 时间范围 | 统计数据 | 管理员 |
| 可视化报表 | 图表展示统计结果 | 数据源 | ECharts图表 | 管理员 |
---
## 三、业务流程描述
### 3.1 项目申报流程
```
1. 学生登录系统
2. 进入项目申报页面
3. 填写项目基本信息:
- 项目名称
- 项目类型(创新训练/创业训练/创业实践)
- 项目级别(校级/省级/国家级)
- 项目简介
- 研究计划
- 预期成果
- 经费预算
4. 添加项目成员(可多人协作)
5. 选择指导教师
6. 上传附件材料(项目计划书等)
7. 提交申报
8. 系统生成项目编号
9. 项目状态变更为"待初审"
```
### 3.2 项目评审流程
```
初审阶段:
1. 管理员查看待初审项目列表
2. 管理员分配初审专家1-3人
3. 系统发送评审通知给专家
4. 专家登录系统查看评审任务
5. 专家在线评审:
- 查看项目详情
- 查看附件材料
- 填写评审意见
- 给出评分
- 选择通过/不通过/修改后通过
6. 系统汇总评审意见
7. 若通过,项目状态变更为"初审通过"
8. 若不通过,项目状态变更为"初审不通过",学生可修改后重新提交
中期检查阶段:
1. 管理员发起中期检查
2. 学生填写中期检查报告
3. 上传阶段性成果材料
4. 指导教师评审中期报告
5. 系统记录中期检查结果
结题验收阶段:
1. 学生提交结题申请
2. 上传最终成果材料
3. 管理员分配验收专家
4. 专家评审验收材料
5. 系统记录验收结果
6. 项目状态变更为"已结题"
```
### 3.3 学分认定流程
```
1. 项目结题后,系统自动触发学分认定
2. 系统读取项目信息:
- 项目级别
- 项目成员排名
- 结题评价等级
3. 系统查询学分规则表
4. 计算每位成员应得学分:
- 基础学分 = 规则配置的对应级别学分
- 成员学分 = 基础学分 × 排名系数
5. 生成学分明细记录
6. 学生查看学分认定结果
7. 若有异议,可提交申诉
8. 管理员审核申诉
9. 最终确认学分
```
### 3.4 成果管理流程
```
1. 项目进行中/结题后,学生录入成果
2. 选择成果类型:
- 学术论文
- 发明专利
- 实用新型专利
- 软件著作权
- 竞赛获奖
- 创业实践成果
- 其他
3. 填写成果详情:
- 成果名称
- 发表/获得时间
- 发表/颁发机构
- 成果描述
4. 上传证明材料(证书、论文等)
5. 提交审核
6. 指导教师/管理员审核真实性
7. 审核通过后,成果状态变更为"已认证"
8. 系统根据成果类型自动计算附加学分
```
---
## 四、非功能性需求
### 4.1 性能需求
- 系统响应时间 < 2秒
- 支持500并发用户
- 数据库查询优化,索引设计合理
### 4.2 安全需求
- 用户密码加密存储BCrypt
- 使用Sa-Token进行会话管理和权限控制
- 敏感操作需二次确认
- 操作日志记录
### 4.3 可用性需求
- 界面简洁直观,符合用户习惯
- 提供操作提示和帮助文档
- 错误信息友好明确
### 4.4 兼容性需求
- 支持主流浏览器Chrome、Firefox、Edge、Safari
- 响应式设计,支持移动端访问
---
## 五、需求优先级
| 优先级 | 模块 | 说明 |
|--------|------|------|
| P0 | 用户中心 | 基础功能,必须优先实现 |
| P0 | 项目管理-申报 | 核心业务入口 |
| P0 | 项目管理-查询 | 基础功能 |
| P1 | 评审管理 | 核心业务流程 |
| P1 | 学分认定 | 核心价值功能 |
| P1 | 成果管理 | 核心业务 |
| P2 | 数据统计 | 增值功能 |
| P2 | 系统管理 | 管理功能 |
---
*文档版本: v1.0*
*创建日期: 2026-03-01*
*作者: PMClaw*

477
02-数据库设计文档.md Normal file
View File

@@ -0,0 +1,477 @@
# 高校创新创业项目孵化平台 - 数据库设计文档
## 一、数据库概述
### 1.1 设计原则
- 遵循第三范式,减少数据冗余
- 合理设置索引,优化查询性能
- 使用软删除,保留历史数据
- 统一字段命名规范(下划线命名法)
### 1.2 公共字段说明
所有表都包含以下公共字段:
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | BIGINT | 主键,自增 |
| create_time | DATETIME | 创建时间 |
| update_time | DATETIME | 更新时间 |
| create_by | BIGINT | 创建人ID |
| update_by | BIGINT | 更新人ID |
| deleted | TINYINT | 逻辑删除标识0-未删除1-已删除) |
---
## 二、用户相关表
### 2.1 用户表 (sys_user)
```sql
CREATE TABLE `sys_user` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
`password` VARCHAR(100) NOT NULL COMMENT '密码BCrypt加密',
`real_name` VARCHAR(50) NOT NULL COMMENT '真实姓名',
`gender` TINYINT DEFAULT 0 COMMENT '性别0-未知1-男2-女)',
`phone` VARCHAR(20) DEFAULT NULL COMMENT '联系电话',
`email` VARCHAR(100) DEFAULT NULL COMMENT '邮箱',
`avatar` VARCHAR(255) DEFAULT NULL COMMENT '头像URL',
`status` TINYINT DEFAULT 1 COMMENT '状态0-禁用1-启用)',
`role_type` TINYINT NOT NULL COMMENT '角色类型1-学生2-教师3-管理员)',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_by` BIGINT DEFAULT NULL COMMENT '创建人',
`update_by` BIGINT DEFAULT NULL COMMENT '更新人',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`),
KEY `idx_role_type` (`role_type`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
```
### 2.2 学生信息表 (stu_info)
```sql
CREATE TABLE `stu_info` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`student_no` VARCHAR(20) NOT NULL COMMENT '学号',
`college` VARCHAR(100) NOT NULL COMMENT '学院',
`major` VARCHAR(100) NOT NULL COMMENT '专业',
`grade` VARCHAR(10) NOT NULL COMMENT '年级',
`class_name` VARCHAR(50) DEFAULT NULL COMMENT '班级',
`advisor_id` BIGINT DEFAULT NULL COMMENT '指导教师ID',
`total_credit` DECIMAL(5,1) DEFAULT 0.0 COMMENT '累计创新学分',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_student_no` (`student_no`),
UNIQUE KEY `uk_user_id` (`user_id`),
KEY `idx_college` (`college`),
KEY `idx_grade` (`grade`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学生信息表';
```
### 2.3 教师信息表 (teacher_info)
```sql
CREATE TABLE `teacher_info` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`teacher_no` VARCHAR(20) NOT NULL COMMENT '工号',
`college` VARCHAR(100) NOT NULL COMMENT '学院',
`title` VARCHAR(50) DEFAULT NULL COMMENT '职称',
`research_field` VARCHAR(255) DEFAULT NULL COMMENT '研究方向',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_teacher_no` (`teacher_no`),
UNIQUE KEY `uk_user_id` (`user_id`),
KEY `idx_college` (`college`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='教师信息表';
```
---
## 三、项目相关表
### 3.1 项目表 (project)
```sql
CREATE TABLE `project` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '项目ID',
`project_no` VARCHAR(30) NOT NULL COMMENT '项目编号',
`project_name` VARCHAR(200) NOT NULL COMMENT '项目名称',
`project_type` TINYINT NOT NULL COMMENT '项目类型1-创新训练2-创业训练3-创业实践)',
`project_level` TINYINT NOT NULL COMMENT '项目级别1-校级2-省级3-国家级)',
`leader_id` BIGINT NOT NULL COMMENT '负责人ID',
`advisor_id` BIGINT NOT NULL COMMENT '指导教师ID',
`description` TEXT COMMENT '项目简介',
`research_plan` TEXT COMMENT '研究计划',
`expected_result` TEXT COMMENT '预期成果',
`budget` DECIMAL(10,2) DEFAULT 0.00 COMMENT '经费预算',
`status` TINYINT DEFAULT 1 COMMENT '状态1-待初审2-初审中3-初审通过4-初审不通过5-中期检查中6-中期通过7-中期不通过8-结题验收中9-已结题10-已归档)',
`start_time` DATE DEFAULT NULL COMMENT '立项时间',
`end_time` DATE DEFAULT NULL COMMENT '结题时间',
`college` VARCHAR(100) DEFAULT NULL COMMENT '所属学院',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_by` BIGINT DEFAULT NULL COMMENT '创建人',
`update_by` BIGINT DEFAULT NULL COMMENT '更新人',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_project_no` (`project_no`),
KEY `idx_leader_id` (`leader_id`),
KEY `idx_advisor_id` (`advisor_id`),
KEY `idx_status` (`status`),
KEY `idx_project_level` (`project_level`),
KEY `idx_college` (`college`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目表';
```
### 3.2 项目成员表 (project_member)
```sql
CREATE TABLE `project_member` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID',
`project_id` BIGINT NOT NULL COMMENT '项目ID',
`user_id` BIGINT NOT NULL COMMENT '成员ID',
`member_order` INT DEFAULT 1 COMMENT '成员排名(影响学分分配)',
`role` TINYINT DEFAULT 1 COMMENT '角色1-成员2-负责人)',
`join_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '加入时间',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_project_user` (`project_id`, `user_id`),
KEY `idx_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目成员表';
```
### 3.3 项目附件表 (project_attachment)
```sql
CREATE TABLE `project_attachment` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID',
`project_id` BIGINT NOT NULL COMMENT '项目ID',
`file_name` VARCHAR(255) NOT NULL COMMENT '文件名',
`file_path` VARCHAR(500) NOT NULL COMMENT '文件路径',
`file_size` BIGINT DEFAULT NULL COMMENT '文件大小(字节)',
`file_type` VARCHAR(50) DEFAULT NULL COMMENT '文件类型',
`attachment_type` TINYINT DEFAULT 1 COMMENT '附件类型1-申报材料2-中期材料3-结题材料)',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`create_by` BIGINT DEFAULT NULL COMMENT '上传人',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
KEY `idx_project_id` (`project_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目附件表';
```
---
## 四、评审相关表
### 4.1 评审表 (review)
```sql
CREATE TABLE `review` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '评审ID',
`project_id` BIGINT NOT NULL COMMENT '项目ID',
`reviewer_id` BIGINT NOT NULL COMMENT '评审人ID',
`review_type` TINYINT NOT NULL COMMENT '评审类型1-初审2-中期检查3-结题验收)',
`score` DECIMAL(5,1) DEFAULT NULL COMMENT '评审分数0-100',
`opinion` TEXT COMMENT '评审意见',
`result` TINYINT DEFAULT NULL COMMENT '评审结果1-通过2-不通过3-修改后通过)',
`status` TINYINT DEFAULT 1 COMMENT '状态1-待评审2-已评审)',
`review_time` DATETIME DEFAULT NULL COMMENT '评审时间',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
KEY `idx_project_id` (`project_id`),
KEY `idx_reviewer_id` (`reviewer_id`),
KEY `idx_review_type` (`review_type`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='评审表';
```
### 4.2 评审评分项表 (review_score_item)
```sql
CREATE TABLE `review_score_item` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID',
`review_id` BIGINT NOT NULL COMMENT '评审ID',
`item_name` VARCHAR(100) NOT NULL COMMENT '评分项名称',
`item_score` DECIMAL(5,1) NOT NULL COMMENT '该项分数',
`max_score` DECIMAL(5,1) NOT NULL COMMENT '该项满分',
`item_comment` VARCHAR(500) DEFAULT NULL COMMENT '该项评语',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_review_id` (`review_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='评审评分项表';
```
---
## 五、成果相关表
### 5.1 成果表 (achievement)
```sql
CREATE TABLE `achievement` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '成果ID',
`project_id` BIGINT NOT NULL COMMENT '项目ID',
`achievement_type` TINYINT NOT NULL COMMENT '成果类型1-学术论文2-发明专利3-实用新型专利4-软件著作权5-竞赛获奖6-创业实践7-其他)',
`achievement_name` VARCHAR(200) NOT NULL COMMENT '成果名称',
`achievement_level` TINYINT DEFAULT NULL COMMENT '成果级别1-校级2-市级3-省级4-国家级5-国际级)',
`author_names` VARCHAR(500) DEFAULT NULL COMMENT '作者/获奖人姓名',
`publish_time` DATE DEFAULT NULL COMMENT '发表/获得时间',
`publish_org` VARCHAR(200) DEFAULT NULL COMMENT '发表/颁发机构',
`description` TEXT COMMENT '成果描述',
`credit` DECIMAL(5,1) DEFAULT 0.0 COMMENT '认定学分',
`status` TINYINT DEFAULT 1 COMMENT '状态1-待审核2-已认证3-审核不通过)',
`auditor_id` BIGINT DEFAULT NULL COMMENT '审核人ID',
`audit_time` DATETIME DEFAULT NULL COMMENT '审核时间',
`audit_opinion` VARCHAR(500) DEFAULT NULL COMMENT '审核意见',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_by` BIGINT DEFAULT NULL COMMENT '创建人',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
KEY `idx_project_id` (`project_id`),
KEY `idx_achievement_type` (`achievement_type`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成果表';
```
### 5.2 成果附件表 (achievement_attachment)
```sql
CREATE TABLE `achievement_attachment` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT 'ID',
`achievement_id` BIGINT NOT NULL COMMENT '成果ID',
`file_name` VARCHAR(255) NOT NULL COMMENT '文件名',
`file_path` VARCHAR(500) NOT NULL COMMENT '文件路径',
`file_size` BIGINT DEFAULT NULL COMMENT '文件大小(字节)',
`file_type` VARCHAR(50) DEFAULT NULL COMMENT '文件类型',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`create_by` BIGINT DEFAULT NULL COMMENT '上传人',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
KEY `idx_achievement_id` (`achievement_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成果附件表';
```
---
## 六、学分相关表
### 6.1 学分规则表 (credit_rule)
```sql
CREATE TABLE `credit_rule` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '规则ID',
`rule_name` VARCHAR(100) NOT NULL COMMENT '规则名称',
`rule_type` TINYINT NOT NULL COMMENT '规则类型1-项目级别2-成果类型)',
`target_type` TINYINT NOT NULL COMMENT '目标类型(与项目级别或成果类型对应)',
`target_level` TINYINT DEFAULT NULL COMMENT '目标级别(用于成果级别细分)',
`base_credit` DECIMAL(5,1) NOT NULL COMMENT '基础学分',
`leader_coefficient` DECIMAL(3,2) DEFAULT 1.00 COMMENT '负责人系数',
`member_coefficient` DECIMAL(3,2) DEFAULT 0.50 COMMENT '成员系数',
`description` VARCHAR(500) DEFAULT NULL COMMENT '规则说明',
`status` TINYINT DEFAULT 1 COMMENT '状态0-禁用1-启用)',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`create_by` BIGINT DEFAULT NULL COMMENT '创建人',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
KEY `idx_rule_type` (`rule_type`),
KEY `idx_target_type` (`target_type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学分规则表';
```
### 6.2 学分明细表 (credit_detail)
```sql
CREATE TABLE `credit_detail` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '明细ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`project_id` BIGINT DEFAULT NULL COMMENT '项目ID',
`achievement_id` BIGINT DEFAULT NULL COMMENT '成果ID',
`credit_source` TINYINT NOT NULL COMMENT '学分来源1-项目结题2-成果认证)',
`credit` DECIMAL(5,1) NOT NULL COMMENT '获得学分',
`coefficient` DECIMAL(3,2) DEFAULT 1.00 COMMENT '分配系数',
`rule_id` BIGINT DEFAULT NULL COMMENT '适用规则ID',
`remark` VARCHAR(255) DEFAULT NULL COMMENT '备注',
`status` TINYINT DEFAULT 1 COMMENT '状态1-正常2-申诉中3-已调整)',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_project_id` (`project_id`),
KEY `idx_achievement_id` (`achievement_id`),
KEY `idx_credit_source` (`credit_source`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学分明细表';
```
### 6.3 学分申诉表 (credit_appeal)
```sql
CREATE TABLE `credit_appeal` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '申诉ID',
`credit_detail_id` BIGINT NOT NULL COMMENT '学分明细ID',
`user_id` BIGINT NOT NULL COMMENT '申诉人ID',
`appeal_reason` TEXT NOT NULL COMMENT '申诉原因',
`appeal_evidence` VARCHAR(500) DEFAULT NULL COMMENT '申诉证据(附件路径)',
`status` TINYINT DEFAULT 1 COMMENT '状态1-待处理2-已通过3-已驳回)',
`handler_id` BIGINT DEFAULT NULL COMMENT '处理人ID',
`handle_time` DATETIME DEFAULT NULL COMMENT '处理时间',
`handle_result` TEXT COMMENT '处理结果',
`adjusted_credit` DECIMAL(5,1) DEFAULT NULL COMMENT '调整后学分',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
KEY `idx_credit_detail_id` (`credit_detail_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学分申诉表';
```
---
## 七、系统管理表
### 7.1 操作日志表 (sys_log)
```sql
CREATE TABLE `sys_log` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`user_id` BIGINT DEFAULT NULL COMMENT '操作用户ID',
`username` VARCHAR(50) DEFAULT NULL COMMENT '操作用户名',
`operation` VARCHAR(100) NOT NULL COMMENT '操作名称',
`method` VARCHAR(200) DEFAULT NULL COMMENT '请求方法',
`params` TEXT COMMENT '请求参数',
`ip` VARCHAR(50) DEFAULT NULL COMMENT 'IP地址',
`time` BIGINT DEFAULT NULL COMMENT '执行时长(毫秒)',
`result` TINYINT DEFAULT 1 COMMENT '执行结果1-成功0-失败)',
`error_msg` TEXT COMMENT '错误信息',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
PRIMARY KEY (`id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='操作日志表';
```
### 7.2 系统配置表 (sys_config)
```sql
CREATE TABLE `sys_config` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '配置ID',
`config_key` VARCHAR(100) NOT NULL COMMENT '配置键',
`config_value` VARCHAR(500) NOT NULL COMMENT '配置值',
`config_name` VARCHAR(100) NOT NULL COMMENT '配置名称',
`description` VARCHAR(255) DEFAULT NULL COMMENT '配置说明',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`deleted` TINYINT DEFAULT 0 COMMENT '删除标识',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_config_key` (`config_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统配置表';
```
---
## 八、数据库关系图(文字描述)
```
┌─────────────────────────────────────────────────────────────────┐
│ 用户子系统 │
├─────────────────────────────────────────────────────────────────┤
│ sys_user (用户表) │
│ │ │
│ ├──1:1──> stu_info (学生信息表) │
│ └──1:1──> teacher_info (教师信息表) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 项目子系统 │
├─────────────────────────────────────────────────────────────────┤
│ project (项目表) │
│ │ │
│ ├──1:N──> project_member (项目成员表) │
│ ├──1:N──> project_attachment (项目附件表) │
│ ├──1:N──> review (评审表) │
│ ├──1:N──> achievement (成果表) │
│ └──1:N──> credit_detail (学分明细表) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 评审子系统 │
├─────────────────────────────────────────────────────────────────┤
│ review (评审表) │
│ │ │
│ └──1:N──> review_score_item (评审评分项表) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 成果子系统 │
├─────────────────────────────────────────────────────────────────┤
│ achievement (成果表) │
│ │ │
│ ├──1:N──> achievement_attachment (成果附件表) │
│ └──1:1──> credit_detail (学分明细表) │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 学分子系统 │
├─────────────────────────────────────────────────────────────────┤
│ credit_rule (学分规则表) │
│ │ │
│ └──1:N──> credit_detail (学分明细表) │
│ │ │
│ └──1:N──> credit_appeal (学分申诉表) │
└─────────────────────────────────────────────────────────────────┘
```
---
## 九、初始化数据
### 9.1 学分规则初始化数据
```sql
-- 项目级别学分规则
INSERT INTO credit_rule (rule_name, rule_type, target_type, base_credit, leader_coefficient, member_coefficient, description) VALUES
('校级项目', 1, 1, 1.0, 1.00, 0.50, '校级创新创业项目基础学分'),
('省级项目', 1, 2, 2.0, 1.00, 0.50, '省级创新创业项目基础学分'),
('国家级项目', 1, 3, 3.0, 1.00, 0.50, '国家级创新创业项目基础学分');
-- 成果类型学分规则
INSERT INTO credit_rule (rule_name, rule_type, target_type, target_level, base_credit, description) VALUES
('学术论文-核心期刊', 2, 1, 3, 1.5, '发表核心期刊论文'),
('学术论文-SCI/EI', 2, 1, 4, 2.0, '发表SCI/EI论文'),
('发明专利', 2, 2, NULL, 2.0, '获得发明专利授权'),
('实用新型专利', 2, 3, NULL, 1.0, '获得实用新型专利授权'),
('软件著作权', 2, 4, NULL, 0.5, '获得软件著作权登记'),
('竞赛获奖-省级', 2, 5, 3, 1.0, '省级竞赛获奖'),
('竞赛获奖-国家级', 2, 5, 4, 2.0, '国家级竞赛获奖');
```
### 9.2 管理员账号初始化
```sql
-- 默认管理员账号(密码: admin123实际使用BCrypt加密
INSERT INTO sys_user (username, password, real_name, gender, role_type, status) VALUES
('admin', '$2a$10$N.zmdr9k7uOCQb376NoUnuTJ8iAt6Z5EHsM8lE9lBOsl7iAt9hQIu', '系统管理员', 1, 3, 1);
```
---
*文档版本: v1.0*
*创建日期: 2026-03-01*
*作者: PMClaw*