002 智能翻译助手数据库表设计
2025/12/19大约 13 分钟
002 智能翻译助手数据库表设计
项目概述
智能翻译助手是一个基于Spring AI的多语言翻译系统,支持文本翻译、文档翻译和实时对话翻译。本文档详细描述了系统的数据库表设计。
技术栈
- 数据库 : MySQL 8.0+
- 字符集 : utf8mb4
- 排序规则 : utf8mb4_unicode_ci
- 存储引擎 : InnoDB
- ORM框架 : JPA/Hibernate
数据库架构
核心功能模块
- 用户管理模块 - 用户信息、配置、权限管理
- 翻译服务模块 - 文本翻译、文档翻译、聊天翻译
- 术语库管理模块 - 专业术语的创建、管理和使用
- 质量评估模块 - 翻译质量的自动和人工评估
- 系统管理模块 - 配置管理、日志记录、统计分析
- 文件存储模块 - 文档和文件的存储管理
- 通知系统模块 - 系统通知和用户消息
表结构设计
1. 用户管理相关表
1.1 用户表 (users)
存储系统用户的基本信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 用户ID,主键 |
| username | varchar | 50 | NOT NULL | - | 用户名,唯一 |
| varchar | 100 | NOT NULL | - | 邮箱,唯一 | |
| password_hash | varchar | 255 | NOT NULL | - | 密码哈希 |
| nickname | varchar | 100 | NULL | - | 昵称 |
| avatar_url | varchar | 500 | NULL | - | 头像URL |
| phone | varchar | 20 | NULL | - | 手机号 |
| language_preference | varchar | 10 | NULL | 'zh' | 语言偏好 |
| timezone | varchar | 50 | NULL | 'Asia/Shanghai' | 时区 |
| status | enum | - | NOT NULL | 'ACTIVE' | 用户状态 |
| role | enum | - | NOT NULL | 'USER' | 用户角色 |
| last_login_time | datetime | - | NULL | - | 最后登录时间 |
| last_login_ip | varchar | 45 | NULL | - | 最后登录IP |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 唯一索引:
uk_username (username),uk_email (email) - 普通索引:
idx_status (status),idx_created_at (created_at) - 复合索引:
idx_status_role (status, role)
1.2 用户配置表 (user_settings)
存储用户的个性化配置信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 配置ID,主键 |
| user_id | bigint | 20 | NOT NULL | - | 用户ID,外键 |
| setting_key | varchar | 100 | NOT NULL | - | 配置键 |
| setting_value | text | - | NULL | - | 配置值 |
| setting_type | enum | - | NOT NULL | 'STRING' | 配置类型 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 唯一索引:
uk_user_setting (user_id, setting_key)
2. 翻译服务相关表
2.1 翻译记录表 (translation_records)
存储用户的翻译历史记录。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 记录ID,主键 |
| user_id | bigint | 20 | NULL | - | 用户ID(支持匿名翻译) |
| source_language | varchar | 10 | NOT NULL | - | 源语言代码 |
| target_language | varchar | 10 | NOT NULL | - | 目标语言代码 |
| source_text | text | - | NOT NULL | - | 源文本内容 |
| translated_text | text | - | NOT NULL | - | 翻译结果 |
| translation_type | enum | - | NOT NULL | - | 翻译类型 |
| translation_engine | varchar | 50 | NULL | - | 翻译引擎 |
| quality_score | int | 11 | NULL | - | 质量评分(0-100) |
| processing_time | bigint | 20 | NULL | - | 翻译耗时(毫秒) |
| character_count | int | 11 | NULL | - | 字符数统计 |
| use_terminology | tinyint | 1 | NOT NULL | 0 | 是否使用术语库 |
| status | enum | - | NOT NULL | 'COMPLETED' | 翻译状态 |
| error_message | text | - | NULL | - | 错误信息 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 普通索引:
idx_user_id (user_id),idx_languages (source_language, target_language) - 复合索引:
idx_user_languages_created (user_id, source_language, target_language, created_at) - 全文索引:
ft_source_text (source_text),ft_translated_text (translated_text)
2.2 聊天会话表 (chat_sessions)
存储实时对话翻译的会话信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 会话ID,主键 |
| session_id | varchar | 100 | NOT NULL | - | 会话唯一标识 |
| user_a_id | bigint | 20 | NULL | - | 用户A的ID |
| user_b_id | bigint | 20 | NULL | - | 用户B的ID |
| user_a_language | varchar | 10 | NOT NULL | - | 用户A的语言 |
| user_b_language | varchar | 10 | NOT NULL | - | 用户B的语言 |
| session_title | varchar | 200 | NULL | - | 会话标题 |
| status | enum | - | NOT NULL | 'ACTIVE' | 会话状态 |
| message_count | int | 11 | NOT NULL | 0 | 消息总数 |
| auto_translate | tinyint | 1 | NOT NULL | 1 | 是否启用自动翻译 |
| use_terminology | tinyint | 1 | NOT NULL | 0 | 是否使用术语库 |
| last_active_at | datetime | - | NULL | - | 最后活跃时间 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
| ended_at | datetime | - | NULL | - | 会话结束时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 唯一索引:
uk_session_id (session_id) - 普通索引:
idx_user_a_id (user_a_id),idx_user_b_id (user_b_id) - 复合索引:
idx_users_status (user_a_id, user_b_id, status)
2.3 聊天消息表 (chat_messages)
存储聊天会话中的消息内容和翻译结果。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 消息ID,主键 |
| session_id | bigint | 20 | NOT NULL | - | 关联的会话ID,外键 |
| sender_id | bigint | 20 | NOT NULL | - | 发送者ID |
| receiver_id | bigint | 20 | NULL | - | 接收者ID |
| original_message | text | - | NOT NULL | - | 原始消息内容 |
| translated_message | text | - | NULL | - | 翻译后的消息内容 |
| source_language | varchar | 10 | NOT NULL | - | 源语言代码 |
| target_language | varchar | 10 | NULL | - | 目标语言代码 |
| message_type | enum | - | NOT NULL | 'TEXT' | 消息类型 |
| translation_status | enum | - | NOT NULL | 'PENDING' | 翻译状态 |
| translation_engine | varchar | 50 | NULL | - | 翻译引擎 |
| translation_time | bigint | 20 | NULL | - | 翻译耗时(毫秒) |
| use_terminology | tinyint | 1 | NOT NULL | 0 | 是否使用术语库 |
| message_sequence | int | 11 | NULL | - | 消息序号 |
| is_read | tinyint | 1 | NOT NULL | 0 | 是否已读 |
| error_message | text | - | NULL | - | 错误信息 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 复合索引:
idx_session_sequence (session_id, message_sequence) - 全文索引:
ft_original_message (original_message),ft_translated_message (translated_message)
2.4 文档翻译表 (document_translations)
存储文档翻译任务的信息和状态。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 文档翻译ID,主键 |
| user_id | bigint | 20 | NULL | - | 用户ID |
| original_filename | varchar | 255 | NOT NULL | - | 原始文件名 |
| file_type | enum | - | NOT NULL | - | 文件类型 |
| file_size | bigint | 20 | NULL | - | 文件大小(字节) |
| source_file_path | varchar | 500 | NOT NULL | - | 源文件路径 |
| translated_file_path | varchar | 500 | NULL | - | 翻译后文件路径 |
| source_language | varchar | 10 | NOT NULL | - | 源语言代码 |
| target_language | varchar | 10 | NOT NULL | - | 目标语言代码 |
| status | enum | - | NOT NULL | 'PENDING' | 处理状态 |
| progress | int | 11 | NOT NULL | 0 | 翻译进度(0-100) |
| total_pages | int | 11 | NULL | - | 总页数/段落数 |
| processed_pages | int | 11 | NOT NULL | 0 | 已处理页数/段落数 |
| translation_engine | varchar | 50 | NULL | - | 翻译引擎 |
| use_terminology | tinyint | 1 | NOT NULL | 0 | 是否使用术语库 |
| quality_score | int | 11 | NULL | - | 质量评分(0-100) |
| processing_time | bigint | 20 | NULL | - | 处理耗时(毫秒) |
| error_message | text | - | NULL | - | 错误信息 |
| download_count | int | 11 | NOT NULL | 0 | 下载次数 |
| translated_content | longblob | - | NULL | - | 翻译内容(二进制) |
| translation_type | enum | - | NULL | - | 翻译类型 |
| priority | int | 11 | NULL | - | 优先级 |
| original_content | text | - | NULL | - | 原始内容 |
| estimated_completion_time | datetime | - | NULL | - | 预计完成时间 |
| last_download_time | datetime | - | NULL | - | 最后下载时间 |
| status_message | varchar | 500 | NULL | - | 状态消息 |
| character_count | bigint | 20 | NULL | - | 字符数统计 |
| completion_time | datetime | - | NULL | - | 完成时间 |
| completed_at | datetime | - | NULL | - | 完成时间 |
| start_time | datetime | - | NULL | - | 开始时间 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 普通索引:
idx_user_id (user_id),idx_file_type (file_type),idx_status (status) - 复合索引:
idx_user_type_status (user_id, file_type, status)
3. 术语库管理相关表
3.1 术语库条目表 (terminology_entries)
存储专业术语的翻译对照。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 术语ID,主键 |
| source_term | varchar | 500 | NOT NULL | - | 源术语 |
| target_term | varchar | 500 | NOT NULL | - | 目标翻译 |
| source_language | varchar | 10 | NOT NULL | - | 源语言代码 |
| target_language | varchar | 10 | NOT NULL | - | 目标语言代码 |
| category | enum | - | NOT NULL | - | 术语分类 |
| domain | varchar | 100 | NULL | - | 领域标签 |
| notes | text | - | NULL | - | 备注信息 |
| usage_count | int | 11 | NOT NULL | 0 | 使用频率 |
| is_active | tinyint | 1 | NOT NULL | 1 | 是否启用 |
| created_by | varchar | 100 | NULL | - | 创建者ID |
| user_id | varchar | 100 | NULL | - | 用户ID |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 唯一索引:
uk_terminology (source_term, source_language, target_language) - 复合索引:
idx_languages_category_active (source_language, target_language, category, is_active) - 全文索引:
ft_source_term (source_term),ft_target_term (target_term)
3.2 术语库分类表 (terminology_categories)
存储术语库的分类信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 分类ID,主键 |
| category_name | varchar | 100 | NOT NULL | - | 分类名称 |
| category_code | varchar | 50 | NOT NULL | - | 分类代码 |
| description | text | - | NULL | - | 分类描述 |
| parent_id | bigint | 20 | NULL | - | 父分类ID |
| sort_order | int | 11 | NOT NULL | 0 | 排序顺序 |
| is_active | tinyint | 1 | NOT NULL | 1 | 是否启用 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 唯一索引:
uk_category_code (category_code) - 复合索引:
idx_parent_sort (parent_id, sort_order)
4. 质量评估相关表
4.1 质量评估表 (quality_assessments)
存储翻译质量评估结果。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 评估ID,主键 |
| translation_record_id | bigint | 20 | NOT NULL | - | 关联的翻译记录ID,外键 |
| assessment_mode | enum | - | NOT NULL | - | 评估模式 |
| overall_score | int | 11 | NOT NULL | - | 整体质量评分(0-100) |
| accuracy_score | int | 11 | NOT NULL | - | 准确性评分(0-100) |
| fluency_score | int | 11 | NOT NULL | - | 流畅性评分(0-100) |
| consistency_score | int | 11 | NOT NULL | - | 一致性评分(0-100) |
| completeness_score | int | 11 | NOT NULL | - | 完整性评分(0-100) |
| improvement_suggestions | text | - | NULL | - | 改进建议(JSON格式) |
| attention_points | text | - | NULL | - | 注意事项(JSON格式) |
| strengths | text | - | NULL | - | 优点总结(JSON格式) |
| assessment_details | text | - | NULL | - | 评估详情(JSON格式) |
| assessment_time | bigint | 20 | NULL | - | 评估耗时(毫秒) |
| assessment_engine | varchar | 50 | NULL | - | 评估引擎 |
| is_manual_assessment | tinyint | 1 | NOT NULL | 0 | 是否人工评估 |
| assessor_id | varchar | 100 | NULL | - | 评估者ID |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 复合索引:
idx_record_mode_score (translation_record_id, assessment_mode, overall_score)
5. 系统管理相关表
5.1 系统配置表 (system_configs)
存储系统级别的配置信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 配置ID,主键 |
| config_key | varchar | 100 | NOT NULL | - | 配置键 |
| config_value | text | - | NULL | - | 配置值 |
| config_type | enum | - | NOT NULL | 'STRING' | 配置类型 |
| description | varchar | 500 | NULL | - | 配置描述 |
| category | varchar | 50 | NULL | - | 配置分类 |
| is_editable | tinyint | 1 | NOT NULL | 1 | 是否可编辑 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 唯一索引:
uk_config_key (config_key) - 普通索引:
idx_category (category)
5.2 翻译引擎配置表 (translation_engines)
存储翻译引擎的配置信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 引擎ID,主键 |
| engine_name | varchar | 50 | NOT NULL | - | 引擎名称 |
| engine_code | varchar | 50 | NOT NULL | - | 引擎代码 |
| api_endpoint | varchar | 500 | NULL | - | API端点 |
| api_key | varchar | 255 | NULL | - | API密钥 |
| is_active | tinyint | 1 | NOT NULL | 1 | 是否启用 |
| priority | int | 11 | NOT NULL | 0 | 优先级 |
| max_requests_per_minute | int | 11 | NULL | - | 每分钟最大请求数 |
| supported_languages | text | - | NULL | - | 支持的语言列表(JSON格式) |
| config_params | text | - | NULL | - | 配置参数(JSON格式) |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 唯一索引:
uk_engine_code (engine_code) - 复合索引:
idx_active_priority (is_active, priority)
5.3 支持语言表 (supported_languages)
存储系统支持的语言信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 语言ID,主键 |
| language_code | varchar | 10 | NOT NULL | - | 语言代码 |
| language_name | varchar | 100 | NOT NULL | - | 语言名称 |
| native_name | varchar | 100 | NULL | - | 本地语言名称 |
| is_active | tinyint | 1 | NOT NULL | 1 | 是否启用 |
| sort_order | int | 11 | NOT NULL | 0 | 排序顺序 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 唯一索引:
uk_language_code (language_code) - 复合索引:
idx_active_sort (is_active, sort_order)
5.4 使用统计表 (usage_statistics)
存储用户使用统计信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 统计ID,主键 |
| user_id | bigint | 20 | NULL | - | 用户ID |
| stat_date | date | - | NOT NULL | - | 统计日期 |
| translation_count | int | 11 | NOT NULL | 0 | 翻译次数 |
| character_count | bigint | 20 | NOT NULL | 0 | 字符数 |
| document_count | int | 11 | NOT NULL | 0 | 文档翻译次数 |
| chat_message_count | int | 11 | NOT NULL | 0 | 聊天消息数 |
| terminology_usage_count | int | 11 | NOT NULL | 0 | 术语库使用次数 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 唯一索引:
uk_user_date (user_id, stat_date) - 普通索引:
idx_stat_date (stat_date)
5.5 操作日志表 (operation_logs)
存储系统操作日志。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 日志ID,主键 |
| user_id | bigint | 20 | NULL | - | 用户ID |
| operation_type | varchar | 50 | NOT NULL | - | 操作类型 |
| operation_description | varchar | 500 | NULL | - | 操作描述 |
| request_url | varchar | 500 | NULL | - | 请求URL |
| request_method | varchar | 10 | NULL | - | 请求方法 |
| request_params | text | - | NULL | - | 请求参数 |
| response_status | int | 11 | NULL | - | 响应状态码 |
| response_time | bigint | 20 | NULL | - | 响应时间(毫秒) |
| ip_address | varchar | 45 | NULL | - | IP地址 |
| user_agent | varchar | 500 | NULL | - | 用户代理 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 复合索引:
idx_type_created (operation_type, created_at) - 普通索引:
idx_user_id (user_id),idx_created_at (created_at)
6. 文件存储相关表
6.1 文件存储表 (file_storage)
存储文件的基本信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 文件ID,主键 |
| file_name | varchar | 255 | NOT NULL | - | 文件名 |
| original_name | varchar | 255 | NOT NULL | - | 原始文件名 |
| file_path | varchar | 500 | NOT NULL | - | 文件路径 |
| file_size | bigint | 20 | NOT NULL | - | 文件大小(字节) |
| file_type | varchar | 100 | NULL | - | 文件类型 |
| mime_type | varchar | 100 | NULL | - | MIME类型 |
| file_hash | varchar | 64 | NULL | - | 文件哈希值 |
| storage_type | enum | - | NOT NULL | 'LOCAL' | 存储类型 |
| user_id | varchar | 100 | NULL | - | 用户ID |
| is_public | tinyint | 1 | NOT NULL | 0 | 是否公开 |
| download_count | int | 11 | NOT NULL | 0 | 下载次数 |
| expires_at | datetime | - | NULL | - | 过期时间 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 唯一索引:
uk_file_hash (file_hash) - 复合索引:
idx_type_size (file_type, file_size)
7. 通知系统相关表
7.1 系统通知表 (system_notifications)
存储系统级别的通知信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 通知ID,主键 |
| title | varchar | 200 | NOT NULL | - | 通知标题 |
| content | text | - | NOT NULL | - | 通知内容 |
| notification_type | enum | - | NOT NULL | 'SYSTEM' | 通知类型 |
| priority | enum | - | NOT NULL | 'NORMAL' | 优先级 |
| target_users | text | - | NULL | - | 目标用户(JSON格式) |
| is_global | tinyint | 1 | NOT NULL | 0 | 是否全局通知 |
| is_active | tinyint | 1 | NOT NULL | 1 | 是否启用 |
| publish_time | datetime | - | NULL | - | 发布时间 |
| expire_time | datetime | - | NULL | - | 过期时间 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
| updated_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 更新时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 复合索引:
idx_type_priority (notification_type, priority) - 全文索引:
ft_title_content (title, content)
7.2 用户通知表 (user_notifications)
存储用户个人通知信息。
| 字段名 | 类型 | 长度 | 是否为空 | 默认值 | 说明 |
|---|---|---|---|---|---|
| id | bigint | 20 | NOT NULL | AUTO_INCREMENT | 用户通知ID,主键 |
| user_id | bigint | 20 | NOT NULL | - | 用户ID |
| notification_id | bigint | 20 | NULL | - | 系统通知ID,外键 |
| title | varchar | 200 | NOT NULL | - | 通知标题 |
| content | text | - | NOT NULL | - | 通知内容 |
| notification_type | enum | - | NOT NULL | 'SYSTEM' | 通知类型 |
| is_read | tinyint | 1 | NOT NULL | 0 | 是否已读 |
| read_time | datetime | - | NULL | - | 阅读时间 |
| created_at | datetime | - | NOT NULL | CURRENT_TIMESTAMP | 创建时间 |
索引设计:
- 主键索引:
PRIMARY KEY (id) - 复合索引:
idx_user_read (user_id, is_read)