项目地址:https://gitee.com/Sosdnnd/xlswk
随着高考志愿填报的个性化需求日益增强,我们开发了一款面向全国考生的智能志愿辅助填报系统,目标是基于用户成绩、兴趣、职业倾向、地域偏好等因素,借助 AI 模型与数据分析,为考生提供个性化的志愿推荐方案。
数据库作为系统核心,需要满足以下特性:
1. 结构清晰,模块对应
2. 支持大数据分析、智能推荐、实时导出
3. 易扩展,可对接 NLP、AI 模型、政策数据源等
对应模块拆解如下:
用户管理:users, user_profile, user_preferences
院校与专业数据采集:colleges, majors, admissions, policies
智能推荐与优化:recommendations, simulate_warnings
用户倾向分析(NLP):user_tendency
导出与历史记录:export_history
辅助查询与统计:search_logs, chart_cache
用户信息与志愿倾向分表设计,方便灵活扩展(如新增偏好权重、职业目标等字段)。
支持多省份、多年份信息,支持与推荐模块联动分析。
推荐结果以 JSON 存储,便于前端灵活渲染、后续支持 AI 接口返回结构。
使用 DeepSeek 或大语言模型从关键词中识别“偏就业”“偏研究”等倾向,辅助个性推荐。
导出文件记录路径、类型,可结合 OSS/CDN 管理;chart_cache 支持热门图表快速加载。
-- 创建数据库
DROP DATABASE IF EXISTS volunteer_system;
CREATE DATABASE volunteer_system DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci;
USE volunteer_system;
-- 用户模块
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE user_profile (
user_id INT PRIMARY KEY,
real_name VARCHAR(50),
province VARCHAR(50),
subject_type ENUM('物理', '历史'),
total_score INT,
rank INT,
email VARCHAR(100),
phone VARCHAR(20),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
CREATE TABLE user_preferences (
user_id INT PRIMARY KEY,
prefer_abroad BOOLEAN,
prefer_postgrad BOOLEAN,
prefer_employment BOOLEAN,
adjust_accept BOOLEAN,
prefer_big_city BOOLEAN,
prefer_type ENUM('冲稳保', '求稳', '尽力冲刺'),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- 院校、专业、政策数据
CREATE TABLE colleges (
college_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
province VARCHAR(50),
level ENUM('双一流', '985', '211', '普通'),
qs_rank INT,
usnews_rank INT
);
CREATE TABLE majors (
major_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
category VARCHAR(50),
required_subjects VARCHAR(100)
);
CREATE TABLE admissions (
admission_id INT AUTO_INCREMENT PRIMARY KEY,
college_id INT,
major_id INT,
year INT,
min_score INT,
min_rank INT,
num_enrolled INT,
FOREIGN KEY (college_id) REFERENCES colleges(college_id),
FOREIGN KEY (major_id) REFERENCES majors(major_id)
);
CREATE TABLE policies (
policy_id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100),
content TEXT,
region VARCHAR(50),
effective_year INT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 推荐与志愿优化模块
CREATE TABLE recommendations (
rec_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
generated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
method ENUM('本地打分', 'DeepSeek', '混合') DEFAULT '混合',
result_json JSON,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
CREATE TABLE simulate_warnings (
warn_id INT AUTO_INCREMENT PRIMARY KEY,
rec_id INT,
message TEXT,
severity ENUM('高', '中', '低'),
FOREIGN KEY (rec_id) REFERENCES recommendations(rec_id)
);
-- 用户倾向分析
CREATE TABLE user_tendency (
user_id INT PRIMARY KEY,
tendency_json JSON,
nlp_keywords TEXT,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- 导出历史
CREATE TABLE export_history (
export_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
file_type ENUM('PDF', 'Excel'),
generated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
file_path VARCHAR(255),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- 辅助查询日志
CREATE TABLE search_logs (
log_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
query_type ENUM('学校', '专业', '分数线', '政策'),
query_content VARCHAR(255),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
-- 可视化图表缓存
CREATE TABLE chart_cache (
cache_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
chart_type VARCHAR(50),
chart_data JSON,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users(user_id)
);