数据库设计文档
| 版本号 | 修改 | 修改时间 | 备注 |
|---|---|---|---|
| v1.0.0 | 王小琱 | 2024.12.20 | 初次修订 |
1. 简介
本文档描述了 exchange-risk-service-backend 项目中数据库的结构设计,包括核心表的定义、字段说明及表关系,旨在为开发、测试和运维人员提供参考。
2. 数据库概览
- 数据库名称:
exchange_risk_service - 数据库类型:MySQL
- 编码格式:utf8mb4
- 存储引擎:InnoDB
- 排序集:utf8mb4_0900_ai_ci
3. 命名规范
- 表名使用小写字母+下划线风格,例如:
kyc_informations - 字段名使用小写字母+下划线风格,例如:
created_at - 主键统一使用
id - 外键统一用
xxx_id格式 - 时间字段统一使用:
created_at、updated_at - 逻辑删除字段:
deleted_at(如使用软删)
4. 表结构设计(部分核心表)
4.1 kyc_informations(KYC信息表)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| user_id | VARCHAR(255) | 用户ID |
| verification_type | VARCHAR(255) | 认证类型 |
| last_auditor | VARCHAR(255) | 最终审核人 |
| last_audit_role | VARCHAR(255) | 最终审核角色 |
| status | VARCHAR(255) | KYC状态 |
| audit_status | VARCHAR(255) | 审核状态 |
| remark | LONGTEXT | 备注 |
| expiration_time_s | VARCHAR(255) | 过期时间 |
| submit_ip | VARCHAR(255) | 提交IP |
| ip_country | VARCHAR(255) | IP所在国家 |
| is_vpn_used | VARCHAR(255) | 是否使用VPN |
| risk_assessment_score | VARCHAR(255) | 合规评估分数 |
| risk_assessment_level | VARCHAR(255) | 风险评估等级 |
| need_audit_role | VARCHAR(255) | 下一步审核角色 |
| corporate_type | VARCHAR(255) | 公司类型 |
| previous_status | VARCHAR(255) | 上次状态 |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
4.2 personal_informations(个人信息表)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| user_id | VARCHAR(255) | 用户ID |
| kyc_id | BIGINT | KYC ID |
| first_name | VARCHAR(255) | 名字 |
| middle_name | VARCHAR(255) | 中间名 |
| last_name | VARCHAR(255) | 姓氏 |
| gender | VARCHAR(255) | 性别 |
| nationality_flag | VARCHAR(255) | 国籍标志 |
| nationality | VARCHAR(255) | 国籍 |
| contact_information | VARCHAR(255) | 联系信息 |
| date_of_birth | VARCHAR(255) | 出生日期 |
| id_type | VARCHAR(255) | 证件类型 |
| id_no | VARCHAR(255) | 证件号 |
| id_expired_time_s | VARCHAR(255) | 证件过期时间 |
| id_card_front | LONGTEXT | 证件正面照 |
| id_card_back | LONGTEXT | 证件反面照 |
| associated_account_hkbitex | VARCHAR(255) | 关联HKbitex账户 |
| audit_status | VARCHAR(255) | 审核状态 |
| foreign_name | VARCHAR(255) | 外文名 |
| place_of_issuance | VARCHAR(255) | 签发地 |
| is_associated_account_hkbitex | VARCHAR(255) | 是否关联方在HKbitex |
| associated_account_id | VARCHAR(255) | 关联方ID |
| is_permanent | VARCHAR(255) | 是否永久证件 |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
4.3 company_informations(公司信息表)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| user_id | VARCHAR(255) | 用户ID |
| kyc_id | BIGINT | KYC ID |
| company_english_name | VARCHAR(255) | 公司英文名 |
| company_chinese_name | VARCHAR(255) | 公司中文名 |
| aliases | VARCHAR(255) | 别名 |
| registration_number | VARCHAR(255) | 注册号 |
| certificate_number | VARCHAR(255) | 证书编号 |
| country_of_incorporation | VARCHAR(255) | 注册国家 |
| legal_full_name | VARCHAR(255) | 法人全名 |
| ... | ... | ... |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
4.4 aml_informations(反洗钱信息表)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| user_id | VARCHAR(255) | 用户ID |
| kyc_id | BIGINT | KYC ID |
| case_id | VARCHAR(255) | case ID |
| case_system_id | VARCHAR(255) | case system ID |
| aml_file | LONGTEXT | AML文件 |
| nationality_risk | VARCHAR(255) | 国籍风险 |
| nationality | VARCHAR(255) | 国籍 |
| nationality_score | VARCHAR(255) | 国家分数 |
| industry_risk | VARCHAR(255) | 行业风险 |
| industry_score | VARCHAR(255) | 行业分数 |
| industry | VARCHAR(255) | 行业 |
| identity_risk_score | VARCHAR(255) | 身份风险分数 |
| identity_risk_level | VARCHAR(255) | 身份风险等级 |
| delivery_risk | VARCHAR(255) | 交割风险 |
| delivery_risk_score | VARCHAR(255) | 交割风险分数 |
| product_risk | VARCHAR(255) | 产品风险 |
| product_risk_score | VARCHAR(255) | 产品风险分数 |
| product_risk_level | VARCHAR(255) | 产品风险等级 |
| delivery_risk_level | VARCHAR(255) | 交割风险等级 |
| categories | VARCHAR(255) | 分类 |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
4.5 connected_partys(关联方表)
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | BIGINT | 主键 |
| external_id | BIGINT | 外部ID |
| party_role | VARCHAR(255) | 关联方角色 |
| name | VARCHAR(255) | 关联方名称 |
| id_type | VARCHAR(255) | 证件类型 |
| id_no | VARCHAR(255) | 证件号 |
| date_of_birth | VARCHAR(255) | 证件注册时间 |
| id_expired_time_s | VARCHAR(255) | 证件过期时间 |
| place_of_incorporation | VARCHAR(255) | 注册地 |
| id_card_front | LONGTEXT | 正面照片地址 |
| id_card_back | LONGTEXT | 反面照片地址 |
| ownership_percentage | VARCHAR(255) | 持股比例 |
| country_of_residence | VARCHAR(255) | 居住地 |
| residential_address | VARCHAR(255) | 居住地址 |
| address_proof | LONGTEXT | 居住地址证明 |
| identity_risk_score | VARCHAR(255) | 身份风险分数 |
| identity_risk_level | VARCHAR(255) | 身份风险等级 |
| case_id | VARCHAR(255) | case ID |
| case_system_id | VARCHAR(255) | case system ID |
| aml_file | LONGTEXT | AML文件 |
| connected_partys_type | VARCHAR(255) | 关联方类型 |
| first_name | VARCHAR(255) | 名字 |
| middle_name | VARCHAR(255) | 中间名 |
| last_name | VARCHAR(255) | 姓氏 |
| gender | VARCHAR(255) | 性别 |
| is_permanent | VARCHAR(255) | 是否永久证件 |
| created_at | DATETIME | 创建时间 |
| updated_at | DATETIME | 更新时间 |
4.6 其他表
kyc_audit_records(KYC审核记录表)kyc_audit_stage(KYC审核阶段表)professional_investors(专业投资者信息表)company_professional_investors(企业专业投资者信息表)notify_settings(通知设置表)files_attachments(附件表)customer_declarations(客户声明表)common_reporting_standards(通用报告标准表)business_financial_informations(企业财务信息表)declarations(声明表)tin_informations(税号信息表)tasks、jobs、qa_datas、expansion_informations、financial_informations、investment_experiences、relevant_works、vasset_knowledges、agreement_signatures、travel_rule、transfer_to_hks、kya_kyt_report、kya_check、view_kyc等,详见 entity 目录下 go 文件。
5. 表关系设计(ER 图)
6. 安全与审计字段
建议每张表都增加以下字段(如适用):
created_at、updated_at:记录操作时间deleted_at:逻辑删除字段
