Skip to content

数据库设计文档

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

1. 简介

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

2. 数据库概览

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

3. 命名规范

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

4. 表结构设计

4.1 表:bank_wallet(用户虚拟收款账号表)

字段名类型长度是否为NULL是否自增是否主键默认值说明
idBIGINT--主键
user_idVARCHAR64-用户ID
id_real_nameVARCHAR64-真实姓名
id_card_noVARCHAR64-证件号码
bank_card_idBIGINT--关联银行卡ID
wallet_typeVARCHAR32-钱包类型
remarkVARCHAR255-附言
created_atDATETIME--创建时间
updated_atDATETIME--更新时间
deleted_atDATETIME--逻辑删除

bank_wallet 表用于记录用户的虚拟收款账号信息。

4.2 表:bank_card_info(银行卡信息表)

字段名类型长度是否为NULL是否自增是否主键默认值说明
idBIGINT--主键
bank_card_noVARCHAR64-银行卡号
card_typeVARCHAR32-卡类型
id_real_nameVARCHAR64-真实姓名
id_card_noVARCHAR64-证件号码
bank_card_nameVARCHAR64-卡名
bank_idBIGINT--关联银行ID
created_atDATETIME--创建时间
updated_atDATETIME--更新时间
deleted_atDATETIME--逻辑删除

bank_card_info 表用于记录用户银行卡的详细信息。

4.3 表:bank_info(银行信息表)

字段名类型长度是否为NULL是否自增是否主键默认值说明
idBIGINT--主键
bank_nameVARCHAR128-银行名称
bank_countryVARCHAR64-银行国家
bank_addressVARCHAR255-银行地址
bank_noVARCHAR64-银行账号
bank_swiftVARCHAR64-银行SWIFT码
created_atDATETIME--创建时间
updated_atDATETIME--更新时间
deleted_atDATETIME--逻辑删除

bank_info 表用于记录银行的基础信息。

4.4 表:bank_agent_info(中转银行信息表)

字段名类型长度是否为NULL是否自增是否主键默认值说明
idBIGINT--主键
bank_idBIGINT--关联银行ID
bank_nameVARCHAR128-银行名称
bank_countryVARCHAR64-银行国家
bank_addressVARCHAR255-银行地址
bank_noVARCHAR64-银行账号
bank_swiftVARCHAR64-银行SWIFT码
created_atDATETIME--创建时间
updated_atDATETIME--更新时间
deleted_atDATETIME--逻辑删除

bank_agent_info 表用于记录银行的中转银行信息。

4.5 表:bank_merchants(商户信息表)

字段名类型长度是否为NULL是否自增是否主键默认值说明
idBIGINT--主键
client_idVARCHAR64-商户ClientID
client_secretVARCHAR128-商户密钥
public_keyTEXT--公钥
account_noVARCHAR64-商户账号
created_atDATETIME--创建时间
updated_atDATETIME--更新时间
deleted_atDATETIME--逻辑删除

bank_merchants 表用于记录银行商户的认证及关键信息。

4.6 表:bank_zaintl_record(银行众安流水表)

字段名类型长度是否为NULL是否自增是否主键默认值说明
idBIGINT--主键
merchant_sequence_noVARCHAR64-商户端流水号
trade_dateVARCHAR16-交易日期
journal_noVARCHAR64-银行流水号
feeVARCHAR32-服务费用
transfer_statusVARCHAR16-处理结果
created_atDATETIME--创建时间
updated_atDATETIME--更新时间
deleted_atDATETIME--逻辑删除

bank_zaintl_record 表用于记录与众安银行相关的交易流水。

5. 表关系设计(ER 图)

6. 安全与审计字段

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

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

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