在线教育系统设计方案
1. 系统概述
本系统是一个现代化的在线教育平台,采用前后端分离架构,提供课程管理、用户管理、视频点播、直播互动等功能。
2. 技术栈选型
2.1 后端技术栈
- 核心框架:Spring Boot 3.x
- 数据库:MySQL 8.x
- 持久层框架:MyBatis Plus
- 缓存:Redis
- 消息队列:RabbitMQ
- 搜索引擎:Elasticsearch
- 文件存储:阿里云OSS
- 视频点播:阿里云视频点播服务
2.2 前端技术栈
- 核心框架:Vue 3.x + TypeScript
- 状态管理:Pinia
- UI组件库:Element Plus
- 构建工具:Vite
- HTTP客户端:Axios
3. 系统架构
3.1 整体架构
- 采用微服务架构
- 使用Spring Cloud Alibaba作为微服务框架
- Nacos作为注册中心和配置中心
- Gateway作为网关
- Sentinel实现熔断降级
3.2 核心服务模块
- 用户中心服务(user-service)
- 课程服务(course-service)
- 订单服务(order-service)
- 支付服务(payment-service)
- 消息服务(message-service)
- 视频点播服务(vod-service)
4. 数据库设计
4.1 用户相关表
-- 用户表
CREATE TABLE `user` (
`id` bigint NOT NULL AUTO_INCREMENT,
`username` varchar(64) NOT NULL,
`password` varchar(128) NOT NULL,
`nickname` varchar(64),
`avatar` varchar(255),
`phone` varchar(11),
`email` varchar(64),
`status` tinyint DEFAULT 1,
`create_time` datetime,
`update_time` datetime,
PRIMARY KEY (`id`)
);
-- 角色表
CREATE TABLE `role` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL,
`code` varchar(64) NOT NULL,
`status` tinyint DEFAULT 1,
PRIMARY KEY (`id`)
);
4.2 课程相关表
-- 课程表
CREATE TABLE `course` (
`id` bigint NOT NULL AUTO_INCREMENT,
`title` varchar(128) NOT NULL,
`cover` varchar(255),
`price` decimal(10,2),
`teacher_id` bigint,
`description` text,
`status` tinyint DEFAULT 0,
`create_time` datetime,
`update_time` datetime,
PRIMARY KEY (`id`)
);
-- 课程章节表
CREATE TABLE `chapter` (
`id` bigint NOT NULL AUTO_INCREMENT,
`course_id` bigint NOT NULL,
`title` varchar(128) NOT NULL,
`sort` int DEFAULT 0,
PRIMARY KEY (`id`)
);
5. 核心功能模块
5.1 用户模块
- 登录注册
- 个人中心
- 权限管理
- 角色管理
5.2 课程模块
- 课程管理
- 课程分类
- 课程搜索
- 课程评价
5.3 视频模块
- 视频上传
- 视频转码
- 视频播放
- 播放进度记录
5.4 订单支付模块
- 订单管理
- 支付集成
- 退款处理
6. 安全设计
- 使用Spring Security进行身份认证和授权
- JWT实现无状态的用户认证
- 数据传输使用HTTPS
- 敏感数据加密存储
7. 性能优化
- Redis缓存热点数据
- Elasticsearch优化搜索
- 使用CDN加速静态资源
- 图片等媒体资源使用OSS存储
8. 部署方案
- 使用Docker容器化部署
- Kubernetes进行容器编排
- 采用分布式部署架构
- 实现高可用和负载均衡
9. 监控运维
- 使用Prometheus + Grafana监控系统运行状态
- ELK进行日志收集和分析
- 配置服务器监控告警机制
10. 开发规范
- 遵循阿里巴巴Java开发规范
- 使用Git进行版本控制
- 采用敏捷开发模式
- 编写完善的技术文档
11. 项目进度规划
- 需求分析和技术选型(1周)
- 数据库设计和架构搭建(2周)
- 核心功能开发(8周)
- 测试和优化(3周)
- 部署上线(1周)
12. 系统接口设计
12.1 用户接口
// 用户登录
POST /api/user/login
// 用户注册
POST /api/user/register
// 获取用户信息
GET /api/user/info
// 更新用户信息
PUT /api/user/info
12.2 课程接口
// 课程列表
GET /api/course/list
// 课程详情
GET /api/course/{id}
// 创建课程
POST /api/course
// 更新课程
PUT /api/course/{id}
// 删除课程
DELETE /api/course/{id}
13. 数据库表补充
13.1 订单相关表
-- 订单表
CREATE TABLE `order` (
`id` bigint NOT NULL AUTO_INCREMENT,
`order_no` varchar(64) NOT NULL COMMENT '订单号',
`user_id` bigint NOT NULL,
`course_id` bigint NOT NULL,
`amount` decimal(10,2) NOT NULL,
`status` tinyint DEFAULT 0 COMMENT '0未支付 1已支付 2已取消',
`pay_type` tinyint COMMENT '1支付宝 2微信',
`create_time` datetime,
`pay_time` datetime,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_no` (`order_no`)
);
-- 支付记录表
CREATE TABLE `payment_log` (
`id` bigint NOT NULL AUTO_INCREMENT,
`order_no` varchar(64) NOT NULL,
`transaction_id` varchar(64) COMMENT '第三方支付流水号',
`pay_type` tinyint,
`amount` decimal(10,2),
`status` tinyint,
`create_time` datetime,
PRIMARY KEY (`id`)
);
14. 缓存设计
14.1 Redis缓存策略
- 用户信息缓存:
Key: user:info:{userId} TTL: 30分钟
- 课程信息缓存:
Key: course:info:{courseId} TTL: 1小时
- 热门课程缓存:
Key: course:hot Type: Sorted Set TTL: 24小时
14.2 缓存更新策略
- 采用Cache Aside Pattern
- 写操作:先更新数据库,再删除缓存
- 读操作:缓存未命中时,读取数据库并写入缓存
15. 消息队列应用
15.1 RabbitMQ队列设计
# 视频处理队列
video:
exchange: video.exchange
routing-key: video.process
queue: video.process.queue
# 订单超时队列
order:
exchange: order.exchange
routing-key: order.timeout
queue: order.timeout.queue
dlx: order.dlx
15.2 消息处理场景
- 视频转码异步处理
- 订单超时自动取消
- 课程购买成功通知
- 系统消息推送
16. 前端架构设计
16.1 目录结构
src/
├── api/ # API接口
├── assets/ # 静态资源
├── components/ # 公共组件
├── hooks/ # 自定义hooks
├── layouts/ # 布局组件
├── router/ # 路由配置
├── stores/ # 状态管理
├── styles/ # 样式文件
├── types/ # TS类型定义
├── utils/ # 工具函数
└── views/ # 页面组件
16.2 状态管理设计
// 用户状态
interface UserState {
userInfo: UserInfo | null;
token: string | null;
permissions: string[];
}
// 课程状态
interface CourseState {
courseList: Course[];
currentCourse: Course | null;
loading: boolean;
}
17. 系统安全加固
17.1 接口安全
- 接口签名验证
- 防重放攻击
- 接口限流
- SQL注入防护
17.2 数据安全
- 敏感数据加密存储
- 传输数据加密
- 数据备份策略
- 用户隐私保护
18. 系统监控告警
18.1 监控指标
- 系统CPU使用率
- 内存使用情况
- 接口响应时间
- 业务异常统计
- 并发用户数
18.2 告警规则
- CPU使用率>80%
- 接口响应时间>2s
- 错误率>1%
- 磁盘使用率>85%
19. 微服务功能设计
19.1 认证中心服务 (auth-service)
19.1.1 功能清单
- 统一登录认证
- 权限管理
- 角色管理
- Token管理
- 单点登录(SSO)
19.1.2 数据库设计
-- 权限表
CREATE TABLE `permission` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL COMMENT '权限名称',
`code` varchar(64) NOT NULL COMMENT '权限标识',
`type` tinyint NOT NULL COMMENT '类型:1菜单 2按钮',
`parent_id` bigint COMMENT '父级ID',
`path` varchar(255) COMMENT '路由路径',
`status` tinyint DEFAULT 1,
PRIMARY KEY (`id`)
);
-- 角色权限关系表
CREATE TABLE `role_permission` (
`id` bigint NOT NULL AUTO_INCREMENT,
`role_id` bigint NOT NULL,
`permission_id` bigint NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_role_perm` (`role_id`,`permission_id`)
);
19.2 用户中心服务 (user-service)
19.2.1 功能清单
- 用户管理
- 讲师管理
- 学员管理
- 个人中心
- 学习记录
- 收藏管理
19.2.2 数据库设计
-- 讲师表
CREATE TABLE `teacher` (
`id` bigint NOT NULL AUTO_INCREMENT,
`user_id` bigint NOT NULL,
`title` varchar(64) COMMENT '职称',
`intro` text COMMENT '简介',
`star_level` tinyint DEFAULT 0 COMMENT '星级',
`status` tinyint DEFAULT 1,
PRIMARY KEY (`id`)
);
-- 学习记录表
CREATE TABLE `study_record` (
`id` bigint NOT NULL AUTO_INCREMENT,
`user_id` bigint NOT NULL,
`course_id` bigint NOT NULL,
`last_study_time` datetime COMMENT '最后学习时间',
`study_duration` int DEFAULT 0 COMMENT '学习时长(分钟)',
`progress` int DEFAULT 0 COMMENT '进度(1-100)',
PRIMARY KEY (`id`),
KEY `idx_user_course` (`user_id`, `course_id`)
);
19.3 课程中心服务 (course-service)
19.3.1 功能清单
- 课程分类管理
- 课程内容管理
- 章节管理
- 课程审核
- 课程上下架
- 课程评价
- 课程推荐
19.3.2 数据库设计
-- 课程分类表
CREATE TABLE `course_category` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL,
`parent_id` bigint DEFAULT 0,
`sort` int DEFAULT 0,
`status` tinyint DEFAULT 1,
PRIMARY KEY (`id`)
);
-- 课程详情表
CREATE TABLE `course_detail` (
`id` bigint NOT NULL AUTO_INCREMENT,
`course_id` bigint NOT NULL,
`introduction` text COMMENT '课程介绍',
`outline` text COMMENT '课程大纲',
`teaching_method` text COMMENT '教学方式',
`assessment` text COMMENT '考核方式',
PRIMARY KEY (`id`)
);
-- 课程资源表
CREATE TABLE `course_resource` (
`id` bigint NOT NULL AUTO_INCREMENT,
`course_id` bigint NOT NULL,
`chapter_id` bigint,
`title` varchar(128) NOT NULL,
`type` tinyint COMMENT '1视频 2文档 3习题',
`url` varchar(255),
`size` bigint DEFAULT 0 COMMENT '文件大小',
`duration` int DEFAULT 0 COMMENT '视频时长',
PRIMARY KEY (`id`)
);
19.4 订单支付服务 (order-service)
19.4.1 功能清单
- 购物车管理
- 订单管理
- 支付集成
- 退款管理
- 订单统计
- 交易流水
19.4.2 数据库设计
-- 购物车表
CREATE TABLE `shopping_cart` (
`id` bigint NOT NULL AUTO_INCREMENT,
`user_id` bigint NOT NULL,
`course_id` bigint NOT NULL,
`price` decimal(10,2) NOT NULL,
`create_time` datetime,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_course` (`user_id`,`course_id`)
);
-- 退款记录表
CREATE TABLE `refund_record` (
`id` bigint NOT NULL AUTO_INCREMENT,
`order_no` varchar(64) NOT NULL,
`refund_no` varchar(64) NOT NULL,
`amount` decimal(10,2) NOT NULL,
`reason` varchar(255),
`status` tinyint DEFAULT 0,
`create_time` datetime,
`success_time` datetime,
PRIMARY KEY (`id`)
);
19.5 内容服务 (content-service)
19.5.1 功能清单
- 问答管理
- 评论管理
- 笔记管理
- 反馈管理
- 举报管理
19.5.2 数据库设计
-- 问答表
CREATE TABLE `question` (
`id` bigint NOT NULL AUTO_INCREMENT,
`user_id` bigint NOT NULL,
`course_id` bigint NOT NULL,
`title` varchar(255) NOT NULL,
`content` text NOT NULL,
`status` tinyint DEFAULT 0,
`view_count` int DEFAULT 0,
`create_time` datetime,
PRIMARY KEY (`id`)
);
-- 笔记表
CREATE TABLE `study_note` (
`id` bigint NOT NULL AUTO_INCREMENT,
`user_id` bigint NOT NULL,
`course_id` bigint NOT NULL,
`chapter_id` bigint,
`content` text NOT NULL,
`status` tinyint DEFAULT 1,
`create_time` datetime,
PRIMARY KEY (`id`)
);
19.6 消息服务 (message-service)
19.6.1 功能清单
- 站内消息
- 邮件通知
- 短信通知
- 消息模板
- 推送记录
19.6.2 数据库设计
-- 消息表
CREATE TABLE `message` (
`id` bigint NOT NULL AUTO_INCREMENT,
`type` tinyint NOT NULL COMMENT '消息类型',
`title` varchar(128) NOT NULL,
`content` text NOT NULL,
`sender_id` bigint,
`receiver_id` bigint,
`status` tinyint DEFAULT 0 COMMENT '0未读 1已读',
`create_time` datetime,
PRIMARY KEY (`id`)
);
-- 消息模板表
CREATE TABLE `message_template` (
`id` bigint NOT NULL AUTO_INCREMENT,
`code` varchar(64) NOT NULL COMMENT '模板编码',
`type` tinyint NOT NULL COMMENT '1邮件 2短信',
`title` varchar(128),
`content` text NOT NULL,
`params` varchar(255) COMMENT '参数列表',
`status` tinyint DEFAULT 1,
PRIMARY KEY (`id`)
);
19.7 存储服务 (storage-service)
19.7.1 功能清单
- 文件上传
- 文件管理
- 视频转码
- 视频切片
- 资源同步
- 文件预览
19.7.2 数据库设计
-- 文件资源表
CREATE TABLE `file_resource` (
`id` bigint NOT NULL AUTO_INCREMENT,
`file_name` varchar(255) NOT NULL,
`file_type` varchar(32) NOT NULL,
`file_size` bigint DEFAULT 0,
`file_path` varchar(255) NOT NULL,
`md5` varchar(32) COMMENT '文件MD5',
`status` tinyint DEFAULT 1,
`create_time` datetime,
PRIMARY KEY (`id`),
KEY `idx_md5` (`md5`)
);
-- 转码任务表
CREATE TABLE `transcode_task` (
`id` bigint NOT NULL AUTO_INCREMENT,
`resource_id` bigint NOT NULL,
`status` tinyint DEFAULT 0,
`definition` varchar(32) COMMENT '清晰度',
`progress` int DEFAULT 0,
`create_time` datetime,
`complete_time` datetime,
PRIMARY KEY (`id`)
);
20. 分布式服务设计
20.1 服务通信方案
20.1.1 同步通信
- 服务间使用OpenFeign进行REST调用
- 使用Sentinel进行服务熔断和限流
- 请求链路追踪使用SkyWalking
20.1.2 异步通信
- RabbitMQ消息队列
- 延迟队列处理订单超时
- 死信队列处理消息重试
20.2 分布式事务
- Seata AT模式处理跨服务事务
- TCC模式处理支付场景
- SAGA模式处理长流程业务
21. 搜索服务设计
21.1 ES索引设计
{
"course": {
"mappings": {
"properties": {
"id": { "type": "long" },
"title": {
"type": "text",
"analyzer": "ik_max_word"
},
"description": {
"type": "text",
"analyzer": "ik_smart"
},
"teacherName": { "type": "keyword" },
"category": { "type": "keyword" },
"price": { "type": "double" },
"studyCount": { "type": "integer" },
"rating": { "type": "float" },
"createTime": { "type": "date" }
}
}
}
}
21.2 搜索功能
- 课程全文检索
- 分类筛选
- 价格区间筛选
- 综合排序
- 热门推荐
22. 直播服务设计
22.1 功能清单
- 直播间管理
- 直播推流
- 直播播放
- 直播录制
- 互动聊天
- 礼物打赏
22.2 数据库设计
-- 直播间表
CREATE TABLE `live_room` (
`id` bigint NOT NULL AUTO_INCREMENT,
`title` varchar(128) NOT NULL,
`cover` varchar(255),
`teacher_id` bigint NOT NULL,
`stream_key` varchar(64) NOT NULL,
`status` tinyint DEFAULT 0,
`start_time` datetime,
`end_time` datetime,
PRIMARY KEY (`id`)
);
-- 直播记录表
CREATE TABLE `live_record` (
`id` bigint NOT NULL AUTO_INCREMENT,
`room_id` bigint NOT NULL,
`record_url` varchar(255),
`duration` int DEFAULT 0,
`create_time` datetime,
PRIMARY KEY (`id`)
);
23. 考试服务设计
23.1 功能清单
- 试题管理
- 试卷管理
- 在线考试
- 自动批改
- 成绩管理
- 错题本
23.2 数据库设计
-- 试题表
CREATE TABLE `question_bank` (
`id` bigint NOT NULL AUTO_INCREMENT,
`type` tinyint NOT NULL COMMENT '1单选 2多选 3判断 4简答',
`content` text NOT NULL,
`options` json COMMENT '选项',
`answer` text NOT NULL,
`analysis` text,
`difficulty` tinyint DEFAULT 2 COMMENT '1易 2中 3难',
PRIMARY KEY (`id`)
);
-- 试卷表
CREATE TABLE `exam_paper` (
`id` bigint NOT NULL AUTO_INCREMENT,
`title` varchar(128) NOT NULL,
`course_id` bigint NOT NULL,
`total_score` int DEFAULT 100,
`pass_score` int DEFAULT 60,
`duration` int DEFAULT 60 COMMENT '考试时长(分钟)',
`start_time` datetime,
`end_time` datetime,
PRIMARY KEY (`id`)
);
24. 数据统计分析
24.1 统计维度
- 用户增长统计
- 课程销售统计
- 学习行为分析
- 付费转化分析
- 教师绩效分析
24.2 数据仓库设计
-- 每日统计表
CREATE TABLE `daily_statistics` (
`id` bigint NOT NULL AUTO_INCREMENT,
`stat_date` date NOT NULL,
`new_user_count` int DEFAULT 0,
`active_user_count` int DEFAULT 0,
`order_count` int DEFAULT 0,
`order_amount` decimal(12,2) DEFAULT 0,
`paid_count` int DEFAULT 0,
`paid_amount` decimal(12,2) DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_date` (`stat_date`)
);
-- 课程统计表
CREATE TABLE `course_statistics` (
`id` bigint NOT NULL AUTO_INCREMENT,
`course_id` bigint NOT NULL,
`view_count` int DEFAULT 0,
`buy_count` int DEFAULT 0,
`study_count` int DEFAULT 0,
`complete_count` int DEFAULT 0,
`income_amount` decimal(12,2) DEFAULT 0,
`stat_date` date,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_course_date` (`course_id`, `stat_date`)
);
25. 系统集成方案
25.1 第三方服务集成
- 阿里云OSS
- 阿里云视频点播
- 阿里云直播
- 短信服务
- 支付服务
- CDN服务
25.2 开放平台API
- OAuth2认证
- 课程信息API
- 订单支付API
- 数据统计API
- Webhook通知
26. AI技术应用设计
26.1 智能批改系统
26.1.1 功能清单
- 客观题自动批改
- 主观题智能评分
- 作文自动评分
- 错误分析
- 改进建议生成
- 知识点关联
26.1.2 数据库设计
-- AI评分记录表
CREATE TABLE `ai_score_record` (
`id` bigint NOT NULL AUTO_INCREMENT,
`answer_id` bigint NOT NULL,
`question_id` bigint NOT NULL,
`original_text` text NOT NULL,
`score` decimal(5,2) NOT NULL,
`analysis` text COMMENT '分析结果',
`suggestions` text COMMENT '改进建议',
`knowledge_points` json COMMENT '关联知识点',
`create_time` datetime,
PRIMARY KEY (`id`)
);
-- 评分模型配置表
CREATE TABLE `score_model_config` (
`id` bigint NOT NULL AUTO_INCREMENT,
`model_name` varchar(64) NOT NULL COMMENT '模型名称',
`question_type` tinyint NOT NULL COMMENT '题目类型',
`parameters` json COMMENT '模型参数',
`version` varchar(32) COMMENT '模型版本',
`status` tinyint DEFAULT 1,
PRIMARY KEY (`id`)
);
26.2 智能问答系统
26.2.1 功能清单
- 课程内容问答
- 学习辅导问答
- 个性化解答
- 知识图谱关联
- 相似问题推荐
- 答案质量评估
26.2.2 数据库设计
-- 知识库表
CREATE TABLE `knowledge_base` (
`id` bigint NOT NULL AUTO_INCREMENT,
`course_id` bigint NOT NULL,
`title` varchar(255) NOT NULL,
`content` text NOT NULL,
`keywords` varchar(255) COMMENT '关键词',
`category` varchar(64) COMMENT '分类',
`vector` text COMMENT '向量数据',
`create_time` datetime,
PRIMARY KEY (`id`),
FULLTEXT KEY `idx_content` (`content`)
);
-- 问答记录表
CREATE TABLE `qa_record` (
`id` bigint NOT NULL AUTO_INCREMENT,
`user_id` bigint NOT NULL,
`question` text NOT NULL,
`answer` text NOT NULL,
`source_type` tinyint COMMENT '来源:1知识库 2模型生成',
`confidence` decimal(5,2) COMMENT '置信度',
`feedback` tinyint COMMENT '反馈:1有用 2无用',
`create_time` datetime,
PRIMARY KEY (`id`)
);
26.3 学习行为分析
26.3.1 功能清单
- 学习路径分析
- 知识掌握度评估
- 学习效果预测
- 个性化推荐
- 学习障碍诊断
- 学习报告生成
26.3.2 数据库设计
-- 学习行为记录表
CREATE TABLE `learning_behavior` (
`id` bigint NOT NULL AUTO_INCREMENT,
`user_id` bigint NOT NULL,
`course_id` bigint NOT NULL,
`resource_id` bigint NOT NULL,
`behavior_type` tinyint COMMENT '1浏览 2下载 3笔记 4提问',
`duration` int DEFAULT 0 COMMENT '停留时长(秒)',
`create_time` datetime,
PRIMARY KEY (`id`)
);
-- 知识图谱表
CREATE TABLE `knowledge_graph` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL,
`parent_id` bigint,
`level` tinyint COMMENT '层级',
`relations` json COMMENT '关联关系',
`weight` int DEFAULT 0 COMMENT '重要程度',
PRIMARY KEY (`id`)
);
26.4 AI模型服务集成
26.4.1 功能模块
# 批改模型服务
correction:
- 文本相似度分析
- 语法错误检测
- 内容逻辑分析
- 知识点覆盖评估
# 问答模型服务
qa:
- 问题理解
- 相关性匹配
- 答案生成
- 答案排序
# 推荐模型服务
recommendation:
- 协同过滤
- 内容推荐
- 实时推荐
- 冷启动处理
26.4.2 模型调用设计
# API接口设计
api:
correction:
- POST /api/ai/correction/essay
- POST /api/ai/correction/question
- GET /api/ai/correction/analysis
qa:
- POST /api/ai/qa/ask
- POST /api/ai/qa/similar
- GET /api/ai/qa/recommend
recommendation:
- GET /api/ai/recommend/course
- GET /api/ai/recommend/resource
- POST /api/ai/recommend/feedback
26.5 AI训练平台
26.5.1 功能清单
- 数据采集
- 数据标注
- 模型训练
- 模型评估
- 模型部署
- 效果监控
26.5.2 数据库设计
-- 训练数据集表
CREATE TABLE `training_dataset` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(128) NOT NULL,
`type` tinyint COMMENT '1文本 2图像 3音频',
`size` int DEFAULT 0 COMMENT '数据量',
`status` tinyint DEFAULT 0,
`create_time` datetime,
PRIMARY KEY (`id`)
);
-- 模型训练记录表
CREATE TABLE `model_training` (
`id` bigint NOT NULL AUTO_INCREMENT,
`model_name` varchar(64) NOT NULL,
`dataset_id` bigint NOT NULL,
`parameters` json COMMENT '训练参数',
`metrics` json COMMENT '评估指标',
`status` tinyint DEFAULT 0,
`start_time` datetime,
`end_time` datetime,
PRIMARY KEY (`id`)
);