Skip to content

数据库设计文档

版本号修改修改时间备注
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_atupdated_at
  • 逻辑删除字段:is_deleted(软删)

4. 表结构设计

4.1 表:message(消息表)

字段名类型长度是否为NULL是否自增是否主键默认值说明
idBIGINT64-主键
senderVARCHAR255-发送者
receiverLONGTEXT--接收者
titleLONGTEXT--标题
contentLONGTEXT--内容
sender_typeINT32-消息类型:1-站内信,2-邮件,3-短信
sender_emailVARCHAR255-发送者邮箱地址
operatorVARCHAR255-操作人
is_deletedTINYINT40删除状态:0-正常,1-删除
statusTINYINT41状态:0-禁用,1-正常
created_atDATETIME--创建时间
updated_atDATETIME--更新时间

4.2 表:user_message(用户消息表)

字段名类型长度是否为NULL是否自增是否主键默认值说明
idBIGINT64-主键
user_idVARCHAR255-用户id
titleLONGTEXT--标题
contentLONGTEXT--内容
message_typeINT32-消息类型:1-系统消息,2-成交消息,3-后台消息
template_typeINT32-用户消息类型
is_readINT321是否已读:1-未读,2-已读
is_deletedTINYINT40删除状态:0-正常,1-删除
statusTINYINT41状态:0-禁用,1-正常
created_atDATETIME--创建时间
updated_atDATETIME--更新时间

4.3 表:sender(发送者表)

字段名类型长度是否为NULL是否自增是否主键默认值说明
idBIGINT64-主键
nameVARCHAR255-发送者名称
fromVARCHAR255-发送者地址(站内信为system,邮件为邮箱地址,短信为手机号)
sender_typeINT32-消息类型:1-站内信,2-邮件,3-短信
message_typeINT32-消息类型:1-系统消息,2-成交消息,3-后台消息
is_deletedTINYINT40删除状态:0-正常,1-删除
statusTINYINT41状态:0-禁用,1-正常
created_atDATETIME--创建时间
updated_atDATETIME--更新时间

5. 表关系设计(ER 图)

  • 一条消息可对应多条用户消息(如群发)。
  • 一个发送者可发送多条消息。

6. 枚举定义

6.1 消息类型(SenderType/MessageType)

NameNumberDescription
站内信1站内信
邮件2邮件
短信3短信

6.2 用户消息类型(TemplateType)

NameNumberDescription
系统消息1系统消息
成交消息2成交消息
后台消息3后台消息

6.3 是否已读(IsRead)

NameNumberDescription
未读1未读
已读2已读

7. 安全与审计字段

所有表均建议包含以下字段:

  • created_atupdated_at:记录操作时间
  • is_deleted:逻辑删除字段
  • status:状态字段

🚀 构建现代化数字资产交易平台