数据库设计文档
| 版本号 | 修改 | 修改时间 | 备注 |
|---|---|---|---|
| v1.0.0 | 王小琱 | 2024.12.20 | 初次修订 |
1. 简介
本文档描述了 exchange-currency-service-backend 项目的数据库结构设计,包括核心表的定义、字段说明及表关系,旨在为开发、测试和运维人员提供参考。
2. 数据库概览
- 数据库名称:
exchange_currency - 数据库类型:MySQL
- 编码格式:utf8mb4
- 存储引擎:InnoDB
- 排序集:utf8mb4_0900_ai_ci
3. 命名规范
- 表名使用小写字母+下划线风格,例如:
symbol_info - 字段名使用小写字母+下划线风格,例如:
created_at - 主键统一使用
id - 外键统一用
xxx_id格式 - 时间字段统一使用:
created_at、updated_at - 逻辑删除字段:
is_deleted(软删)
4. 表结构设计
4.1 symbol_info(交易对信息表)
| 字段名 | 类型 | 长度 | 是否为NULL | 是否自增 | 是否主键 | 默认值 | 说明 |
|---|---|---|---|---|---|---|---|
| id | BIGINT | 64 | 否 | 是 | 是 | - | 主键 |
| symbol | VARCHAR | 255 | 否 | 否 | 否 | - | 交易对 |
| symbol_icon | LONGTEXT | - | 是 | 否 | 否 | - | 交易对图标 |
| symbol_name | VARCHAR | 255 | 是 | 否 | 否 | - | 交易对名称 |
| pair | VARCHAR | 255 | 是 | 否 | 否 | - | 标的交易对 |
| contract_type | VARCHAR | 255 | 是 | 否 | 否 | - | 合约类型: SPOT/OTC/FIAT/DIGITAL |
| delivery_date | BIGINT | 64 | 是 | 否 | 否 | - | 交割日期 |
| onboard_date | BIGINT | 64 | 是 | 否 | 否 | - | 上线日期 |
| base_asset | VARCHAR | 255 | 是 | 否 | 否 | - | 标的资产 |
| quote_asset | VARCHAR | 255 | 是 | 否 | 否 | - | 计价资产 |
| symbol_status | VARCHAR | 255 | 是 | 否 | 否 | - | 交易对状态:DISABLE/TRADING |
| symbol_flag | VARCHAR | 255 | 是 | 否 | 否 | - | SHOW/HIDDEN |
| symbol_type_id | BIGINT | 64 | 是 | 否 | 否 | - | 交易对类型 |
| description | LONGTEXT | - | 是 | 否 | 否 | - | 交易对描述 |
| is_use_default_fee_rate | VARCHAR | 64 | 是 | 否 | 否 | - | 是否使用默认费率:DISABLE/ENABLE |
| is_stablecoin | VARCHAR | 64 | 是 | 否 | 否 | - | 是否是稳定币:true/false |
| is_deleted | TINYINT | 4 | 否 | 否 | 否 | 0 | 删除状态 |
| status | TINYINT | 4 | 否 | 否 | 否 | 1 | 状态 |
| created_at | DATETIME | - | 否 | 否 | 否 | - | 创建时间 |
| updated_at | DATETIME | - | 否 | 否 | 否 | - | 更新时间 |
4.2 symbol_rules(交易对费率规则表)
| 字段名 | 类型 | 长度 | 是否为NULL | 是否自增 | 是否主键 | 默认值 | 说明 |
|---|---|---|---|---|---|---|---|
| id | BIGINT | 64 | 否 | 是 | 是 | - | 主键 |
| symbol_id | BIGINT | 64 | 否 | 否 | 否 | 0 | 交易对 |
| level_id | BIGINT | 64 | 是 | 否 | 否 | null | 交易对等级 |
| maker_fee_rate | VARCHAR | 255 | 是 | 否 | 否 | null | 做市手续费率 |
| taker_fee_rate | VARCHAR | 255 | 是 | 否 | 否 | null | 吃单手续费率 |
| symbol_type_id | BIGINT | 64 | 是 | 否 | 否 | null | 交易对类型 |
| remark | VARCHAR | 255 | 是 | 否 | 否 | null | 备注 |
| is_deleted | TINYINT | 4 | 否 | 否 | 否 | 0 | 删除状态 |
| status | TINYINT | 4 | 否 | 否 | 否 | 1 | 状态 |
| created_at | DATETIME | - | 否 | 否 | 否 | - | 创建时间 |
| updated_at | DATETIME | - | 否 | 否 | 否 | - | 更新时间 |
4.3 symbol_global_settings(全局设置表)
| 字段名 | 类型 | 长度 | 是否为NULL | 是否自增 | 是否主键 | 默认值 | 说明 |
|---|---|---|---|---|---|---|---|
| id | BIGINT | 64 | 否 | 是 | 是 | - | 主键 |
| symbol_type_id | BIGINT | 64 | 是 | 否 | 否 | null | 类型id |
| settings_key | VARCHAR | 255 | 是 | 否 | 否 | null | 键 |
| settings_value | VARCHAR | 255 | 是 | 否 | 否 | null | 值 |
| is_deleted | TINYINT | 4 | 否 | 否 | 否 | 0 | 删除状态 |
| status | TINYINT | 4 | 否 | 否 | 否 | 1 | 状态 |
| created_at | DATETIME | - | 否 | 否 | 否 | - | 创建时间 |
| updated_at | DATETIME | - | 否 | 否 | 否 | - | 更新时间 |
4.4 symbol_filters(交易对风控参数表)
| 字段名 | 类型 | 长度 | 是否为NULL | 是否自增 | 是否主键 | 默认值 | 说明 |
|---|---|---|---|---|---|---|---|
| id | BIGINT | 64 | 否 | 是 | 是 | - | 主键 |
| symbol_id | BIGINT | 64 | 是 | 否 | 否 | null | 交易对 |
| max_notional_value | VARCHAR | 255 | 是 | 否 | 否 | null | 最大名义价值 |
| max_leverage | VARCHAR | 255 | 是 | 否 | 否 | null | 最大杠杆 |
| maint_margin_ratio | VARCHAR | 255 | 是 | 否 | 否 | null | 维持保证金率 |
| is_deleted | TINYINT | 4 | 否 | 否 | 否 | 0 | 删除状态 |
| status | TINYINT | 4 | 否 | 否 | 否 | 1 | 状态 |
| created_at | DATETIME | - | 否 | 否 | 否 | - | 创建时间 |
| updated_at | DATETIME | - | 否 | 否 | 否 | - | 更新时间 |
4.5 symbol_settings(交易对自定义设置表)
| 字段名 | 类型 | 长度 | 是否为NULL | 是否自增 | 是否主键 | 默认值 | 说明 |
|---|---|---|---|---|---|---|---|
| id | BIGINT | 64 | 否 | 是 | 是 | - | 主键 |
| symbol_id | BIGINT | 64 | 是 | 否 | 否 | null | 交易对id |
| settings_key | VARCHAR | 255 | 是 | 否 | 否 | null | 键 |
| settings_value | VARCHAR | 255 | 是 | 否 | 否 | null | 值 |
| is_deleted | TINYINT | 4 | 否 | 否 | 否 | 0 | 删除状态 |
| status | TINYINT | 4 | 否 | 否 | 否 | 1 | 状态 |
| created_at | DATETIME | - | 否 | 否 | 否 | - | 创建时间 |
| updated_at | DATETIME | - | 否 | 否 | 否 | - | 更新时间 |
4.6 symbol_type(交易对类型表)
| 字段名 | 类型 | 长度 | 是否为NULL | 是否自增 | 是否主键 | 默认值 | 说明 |
|---|---|---|---|---|---|---|---|
| id | BIGINT | 64 | 否 | 是 | 是 | - | 主键 |
| type_name | VARCHAR | 255 | 否 | 否 | 否 | - | 类型名称 |
| description | LONGTEXT | - | 是 | 否 | 否 | - | 类型描述 |
| is_deleted | TINYINT | 4 | 否 | 否 | 否 | 0 | 删除状态 |
| status | TINYINT | 4 | 否 | 否 | 否 | 1 | 状态 |
| created_at | DATETIME | - | 否 | 否 | 否 | - | 创建时间 |
| updated_at | DATETIME | - | 否 | 否 | 否 | - | 更新时间 |
5. 表关系设计(ER 图)
6. 安全与审计字段
所有表均建议包含以下字段:
created_at、updated_at:记录操作时间is_deleted:逻辑删除字段status:状态字段
