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_at、updated_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_at、updated_at:记录操作时间
  • deleted_at:逻辑删除字段

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