Skip to content

数据库设计文档

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

1. 简介

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

2. 数据库概览

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

3. 命名规范

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

4. 表结构设计

4.1 表:ip_limit(IP限制表)

字段名类型长度是否为NULL是否自增是否主键默认值说明
idBIGINT--主键
ip_addressVARCHAR255-IP地址
reasonTEXT--限制原因
added_byVARCHAR255-添加人
is_activeVARCHAR16ENABLE是否激活:ENABLE/DISABLE
created_atDATETIME--创建时间
updated_atDATETIME--更新时间

ip_limit 表用于记录被限制访问的 IP 地址及原因,可支持单个 IP 或 CIDR 段。

4.2 表:country_blacklist(国家黑名单表)

字段名类型长度是否为NULL是否自增是否主键默认值说明
idBIGINT--主键
iso_codeVARCHAR16-国家ISO码
reasonTEXT--限制原因
created_atDATETIME--创建时间
updated_atDATETIME--更新时间

country_blacklist 表用于记录被限制访问的国家(通过 ISO 码),用于合规风控

5. 表关系设计(ER 图)

6. 安全与审计字段

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

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

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