系统概述
随着全球化进程的加快,语言能力成为个人职业发展和学术研究的重要基础。语言考试作为衡量语言水平的重要工具,其报名和管理流程的数字化需求日益增长。传统线下报名方式存在效率低、信息不对称、管理成本高等问题,亟需通过信息化手段优化。本系统采用 SpringBoot 作为后端框架,结合 Vue.js 前端技术,实现了前后端分离的高效开发模式。系统功能涵盖用户注册与登录、考试信息发布、在线报名、成绩查询以及后台管理等多个模块。数据库使用 MySQL 存储考生信息、考试安排及成绩数据,并通过 SQL 脚本实现数据的规范化管理。系统设计注重安全性和可扩展性,采用 JWT 进行用户认证。
数据库设计
考生信息数据表
考生信息数据表中,注册时间是通过函数自动获取的,考生 ID 是该表的主键,存储考生的个人基本信息和账户状态。
| 字段名 | 数据类型 | 是否为空 | 描述 |
|---|---|---|---|
| candidate_id | BIGINT | 否 | 考生唯一标识(主键) |
| username | VARCHAR(50) | 否 | 考生用户名 |
| password_hash | VARCHAR(100) | 否 | 密码加密存储 |
| real_name | VARCHAR(30) | 是 | 考生真实姓名 |
| gender | CHAR(1) | 是 | 性别(M/F) |
| birth_date | DATE | 是 | 出生日期 |
| contact_phone | VARCHAR(20) | 否 | 联系电话 |
| VARCHAR(50) | 是 | 电子邮箱 | |
| register_time | DATETIME | 否 | 注册时间 |
| account_status | TINYINT | 否 | 账户状态(0-禁用,1-启用) |
考试信息数据表
考试信息数据表中,创建时间是通过函数自动获取的,考试 ID 是该表的主键,存储考试的基本信息和状态。
| 字段名 | 数据类型 | 是否为空 | 描述 |
|---|---|---|---|
| exam_id | BIGINT | 否 | 考试唯一标识(主键) |
| exam_name | VARCHAR(100) | 否 | 考试名称 |
| exam_type | VARCHAR(30) | 否 | 考试类型 |
| start_time | DATETIME | 否 | 考试开始时间 |
| end_time | DATETIME | 否 | 考试结束时间 |
| location |


