数据库设计文档
| 版本号 | 修改 | 修改时间 | 备注 |
|---|---|---|---|
| v1.0.0 | 王小琱 | 2024.06.22 | 初次生成 |
1. 简介
本文档描述了 exchange-notify-service-backend 项目中数据库的结构设计,包括核心表的定义、字段说明及表关系,旨在为开发、测试和运维人员提供参考。
2. 数据库概览
- 数据库名称:
exchange_notify_service - 数据库类型:MySQL
- 编码格式:utf8mb4
- 存储引擎:InnoDB
- 排序集:utf8mb4_0900_ai_ci
3. 命名规范
- 表名使用小写字母+下划线风格,例如:
user_message - 字段名使用小写字母+下划线风格,例如:
created_at - 主键统一使用
id - 时间字段统一使用:
created_at、updated_at - 逻辑删除字段:
is_deleted(软删)
4. 表结构设计
4.1 表:message(消息表)
| 字段名 | 类型 | 长度 | 是否为NULL | 是否自增 | 是否主键 | 默认值 | 说明 |
|---|---|---|---|---|---|---|---|
| id | BIGINT | 64 | 否 | 是 | 是 | - | 主键 |
| sender | VARCHAR | 255 | 否 | 否 | 否 | - | 发送者 |
| receiver | LONGTEXT | - | 否 | 否 | 否 | - | 接收者 |
| title | LONGTEXT | - | 否 | 否 | 否 | - | 标题 |
| content | LONGTEXT | - | 否 | 否 | 否 | - | 内容 |
| sender_type | INT | 32 | 否 | 否 | 否 | - | 消息类型:1-站内信,2-邮件,3-短信 |
| sender_email | VARCHAR | 255 | 否 | 否 | 否 | - | 发送者邮箱地址 |
| operator | VARCHAR | 255 | 否 | 否 | 否 | - | 操作人 |
| is_deleted | TINYINT | 4 | 否 | 否 | 否 | 0 | 删除状态:0-正常,1-删除 |
| status | TINYINT | 4 | 否 | 否 | 否 | 1 | 状态:0-禁用,1-正常 |
| created_at | DATETIME | - | 否 | 否 | 否 | - | 创建时间 |
| updated_at | DATETIME | - | 否 | 否 | 否 | - | 更新时间 |
4.2 表:user_message(用户消息表)
| 字段名 | 类型 | 长度 | 是否为NULL | 是否自增 | 是否主键 | 默认值 | 说明 |
|---|---|---|---|---|---|---|---|
| id | BIGINT | 64 | 否 | 是 | 是 | - | 主键 |
| user_id | VARCHAR | 255 | 否 | 否 | 否 | - | 用户id |
| title | LONGTEXT | - | 否 | 否 | 否 | - | 标题 |
| content | LONGTEXT | - | 否 | 否 | 否 | - | 内容 |
| message_type | INT | 32 | 否 | 否 | 否 | - | 消息类型:1-系统消息,2-成交消息,3-后台消息 |
| template_type | INT | 32 | 否 | 否 | 否 | - | 用户消息类型 |
| is_read | INT | 32 | 否 | 否 | 否 | 1 | 是否已读:1-未读,2-已读 |
| is_deleted | TINYINT | 4 | 否 | 否 | 否 | 0 | 删除状态:0-正常,1-删除 |
| status | TINYINT | 4 | 否 | 否 | 否 | 1 | 状态:0-禁用,1-正常 |
| created_at | DATETIME | - | 否 | 否 | 否 | - | 创建时间 |
| updated_at | DATETIME | - | 否 | 否 | 否 | - | 更新时间 |
4.3 表:sender(发送者表)
| 字段名 | 类型 | 长度 | 是否为NULL | 是否自增 | 是否主键 | 默认值 | 说明 |
|---|---|---|---|---|---|---|---|
| id | BIGINT | 64 | 否 | 是 | 是 | - | 主键 |
| name | VARCHAR | 255 | 否 | 否 | 否 | - | 发送者名称 |
| from | VARCHAR | 255 | 否 | 否 | 否 | - | 发送者地址(站内信为system,邮件为邮箱地址,短信为手机号) |
| sender_type | INT | 32 | 否 | 否 | 否 | - | 消息类型:1-站内信,2-邮件,3-短信 |
| message_type | INT | 32 | 否 | 否 | 否 | - | 消息类型:1-系统消息,2-成交消息,3-后台消息 |
| is_deleted | TINYINT | 4 | 否 | 否 | 否 | 0 | 删除状态:0-正常,1-删除 |
| status | TINYINT | 4 | 否 | 否 | 否 | 1 | 状态:0-禁用,1-正常 |
| created_at | DATETIME | - | 否 | 否 | 否 | - | 创建时间 |
| updated_at | DATETIME | - | 否 | 否 | 否 | - | 更新时间 |
5. 表关系设计(ER 图)
- 一条消息可对应多条用户消息(如群发)。
- 一个发送者可发送多条消息。
6. 枚举定义
6.1 消息类型(SenderType/MessageType)
| Name | Number | Description |
|---|---|---|
| 站内信 | 1 | 站内信 |
| 邮件 | 2 | 邮件 |
| 短信 | 3 | 短信 |
6.2 用户消息类型(TemplateType)
| Name | Number | Description |
|---|---|---|
| 系统消息 | 1 | 系统消息 |
| 成交消息 | 2 | 成交消息 |
| 后台消息 | 3 | 后台消息 |
6.3 是否已读(IsRead)
| Name | Number | Description |
|---|---|---|
| 未读 | 1 | 未读 |
| 已读 | 2 | 已读 |
7. 安全与审计字段
所有表均建议包含以下字段:
created_at、updated_at:记录操作时间is_deleted:逻辑删除字段status:状态字段
