Skip to content

数据库设计文档

版本号修改修改时间备注
v1.0.0王小琱2024.12.20初次修订


1. 简介

本文档描述了 exchange-statistical-service-backend 项目中数据库的结构设计,包括所有核心表的定义、字段说明及表关系,旨在为开发、测试和运维人员提供参考。

2. 数据库概览

  • 数据库名称:exchange_account_daily_summary
  • 数据库类型:MySQL
  • 编码格式:utf8mb4
  • 存储引擎:InnoDB
  • 排序集:utf8mb4_0900_ai_ci

3. 命名规范

  • 表名使用小写字母+下划线风格,例如:account_daily_summary
  • 字段名使用小写字母+下划线风格,例如:created_at
  • 主键统一使用 id
  • 外键统一用 xxx_id 格式
  • 时间字段统一使用:created_atupdated_at
  • 逻辑删除字段:deleted_at(如使用软删)

4. 表结构设计

4.1 statistical_account_daily_summary(账户日汇总表)

字段名类型说明
idBIGINT主键
dateVARCHAR(255)日期
assetVARCHAR(255)资产
is_declareTINYINT(1)是否申报
......详见代码嵌套结构(含多种汇总字段)
created_atDATETIME创建时间
updated_atDATETIME更新时间

该表包含多层嵌套结构(如 UserSummary、SystemSummary、WalletBalance 等),详细字段请参考 entity/account_daily_summary.go。

4.2 financial_statements(财务报表表)

字段名类型说明
idBIGINT主键
statements_typeVARCHAR(255)类型
assetVARCHAR(255)币种
report_dateVARCHAR(255)报表生成时间
reportLONGTEXT报表
created_atDATETIME创建时间
updated_atDATETIME更新时间

4.3 tasks(定时任务表)

字段名类型说明
idBIGINT主键
task_nameVARCHAR(255)任务名称
statusVARCHAR(255)任务状态
exec_countINT执行次数
statistics_timeVARCHAR(255)统计时间
user_idVARCHAR(255)用户ID
last_exec_timeDATETIME最后执行时间
remarkLONGTEXT备注
created_atDATETIME创建时间
updated_atDATETIME更新时间

4.4 user_trade_records(用户成交明细表)

字段名类型说明
idBIGINT主键
user_idVARCHAR(255)用户ID
last_trade_timeBIGINT最后交易时间
last_deposit_timeBIGINT最后充值时间
last_withdraw_timeBIGINT最后提现时间
last_transfer_timeBIGINT最后转账时间
registration_timeBIGINT注册时间
created_atDATETIME创建时间
updated_atDATETIME更新时间

4.5 audit_financial_orders(财务审核订单表)

字段名类型说明
idBIGINT主键
report_idBIGINT报告ID
report_dateVARCHAR(255)报告日期
assetVARCHAR(255)资产
report_typeVARCHAR(255)报告类型
report_statusVARCHAR(255)报告状态
last_auditorVARCHAR(255)最终审核人
last_audit_roleVARCHAR(255)最终审核角色
need_audit_roleVARCHAR(255)下一步审核角色
remarkLONGTEXT备注
created_atDATETIME创建时间
updated_atDATETIME更新时间

4.6 audit_financial_records(财务审核记录表)

字段名类型说明
idBIGINT主键
order_idBIGINT订单ID
auditorVARCHAR(255)审核人
audit_roleVARCHAR(255)审核角色
operationVARCHAR(255)审核操作
remarkLONGTEXT备注
created_atDATETIME创建时间
updated_atDATETIME更新时间

4.7 user_position_snapshot(用户持仓快照表)

字段名类型说明
idBIGINT主键
report_dateVARCHAR(255)报表生成时间
created_atDATETIME创建时间
updated_atDATETIME更新时间

4.8 trade_ratio(成交占比表)

字段名类型说明
idBIGINT主键
symbolVARCHAR(255)交易对
total_trade_quantityDECIMAL总交易量
market_maker_trade_quantityDECIMAL做市商交易量
total_trade_amountDECIMAL总交易额
market_maker_trade_amountDECIMAL做市商交易额
market_makerVARCHAR(255)做市商
market_maker_trade_ratioDECIMAL做市商成交占比
base_assetVARCHAR(255)基础资产
quote_assetVARCHAR(255)报价资产
statistics_timeVARCHAR(255)统计时间
created_atDATETIME创建时间
updated_atDATETIME更新时间

4.9 orderbook(订单簿表)

字段名类型说明
idBIGINT主键
priceDECIMAL价格
quantityDECIMAL数量
sideVARCHAR(255)方向
indexBIGINT索引
snapshot_idBIGINT快照ID
created_atDATETIME创建时间
updated_atDATETIME更新时间

4.10 orderbook_snapshots(订单簿快照表)

字段名类型说明
idBIGINT主键
statistics_timeDATETIME统计时间
symbolVARCHAR(255)交易对
market_makerVARCHAR(255)做市商
created_atDATETIME创建时间
updated_atDATETIME更新时间

4.11. 其他表(如 view_xxx等)

  • 视图表(如 view_commission、view_trade_splits、view_order_histories 等)和其他统计/报表相关表(如 solidus_execution、eventus_orders 等)请参考 entity 目录下的具体定义,字段较多不一一展开。

5. 表关系设计(ER 图)

6. 安全与审计字段

建议每张表都增加以下字段(如适用):

  • created_atupdated_at:记录操作时间
  • deleted_at:逻辑删除字段

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