第三章 · 根基 第 9 篇:银行核心系统客户数据模型设计

第三章 · 根基 | 银行核心业务系统专栏


一、数据模型是系统的骨架

一个客户信息系统好不好用,80% 取决于它的数据模型设计。它决定了信息覆盖度、查询灵活性、业务扩展性和维护成本。这一篇我们深入看看真实项目中的设计是怎样的。


二、客户号的生成策略

2.1 客户号的核心原则

原则 原因
全局唯一 不能出现一个人两个号
终身不变 客户号改了,所有关联都要改,代价极大
无业务含义 不要把地区、等级等嵌入编号------业务会变,编号不能变
带校验位 防止手动录入错误
可读性 柜员需要口头告诉客户号,太长太乱不好用
预留空间 设计时要考虑未来 20-30 年的客户增长

2.2 常见的客户号策略

策略一:纯数字序列(10位纯数字),优点:简单好记;缺点:没有类型区分。

策略二:类型前缀 + 序列号(如PP=个人,CO=对公 + 8位序列号 + 1位校验码),优点:一眼看出客户类型。**这是大部分银行采用的方案,在系统友好性和人工可读性之间取得了最佳平衡。

策略三:分布式 ID(雪花算法),优点:高性能天然有序;缺点:不便于人工识别。


三、个人客户 vs 对公客户

3.1 为什么要把它们分开?

个人客户和对公客户的信息结构差异巨大:个人是自然人,用身份证;对公是法人组织,用营业执照、注册资本、法定代表人等。如果硬塞进一张表,会变成"大杂烩"------字段特别多、很多是空值、查询效率低。

3.2 经典数据模型设计

方案:核心表 + 扩展表

  • CUST_BASE(客户基础表):cust_id(客户号)、cust_type(客户类型)、cust_name、cert_type、cert_no、status、create_date
  • CUST_INDIVIDUAL(个人扩展表):gender、birthday、nationality、education、occupation、annual_income
  • CUST_CORPORATE(对公扩展表):legal_rep(法定代表人)、reg_capital(注册资本)、business_scope、industry_code、ben_owner(受益所有人)

一个客户可能有多个联系方式(手机、座机、邮箱、多个地址),需要独立建模(CUST_CONTACT、CUST_ADDRESS),支持多值、时间有效性、主标记。


四、客户与账户的关系模型

4.1 一对多的多维关联

一个客户拥有多个账户,这个关系不是简单的"客户 → 账户列表"------它有很多维度:持有人、共有人、授权使用人、代理人、受益人、担保人、法定代表人、实际控制人。

4.2 关系表设计

CUST_ACCT_RELATION(客户账户关系表):rel_id、cust_id、acct_id、rel_type(关系类型)、rel_role(角色)、start_date、end_date、status。

关键设计:不仅支持"查一个客户的所有账户",还要支持"查一个账户的所有关联客户",这是反洗钱和风控的重要基础。


五、客户层级:集团客户 → 机构客户 → 个人客户

银行面对的客户不是平铺的------企业客户往往有复杂的组织结构。如果不知道层级关系,银行就无法计算集团层面的统一授信、做集团客户的综合金融服务、识别隐蔽的关联交易和风险传导。

CUST_HIERARCHY(客户层级关系表):parent_cust_id、child_cust_id、hier_type(层级类型:集团/母子/总分公司/家族/配偶/担保)、share_ratio(持股比例)、control_flag(是否有控制权)。


六、客户证件与 KYC 信息

6.1 证件信息模型

客户可能有多种证件(身份证 + 护照 + 驾驶证),每种证件都需要独立管理(CUST_CERTIFICATE 表)。关键业务逻辑:客户的唯一性判断基于"证件类型+证件号码",而非姓名;证件过期时应该自动提醒并限制业务;证件号码必须加密存储。

6.2 KYC 信息(了解你的客户)

KYC 是反洗钱法规的核心要求,银行必须收集并维护:客户身份信息、职业收入信息、交易目的、资金来源、实际控制人、政治公众人物判断、制裁名单筛查。**CUST_KYC_RECORD 表管理这些信息,包括 KYC 等级、风险等级、审查日期等。


七、模型设计的关键原则

7.1 可扩展性

客户信息是最常变更的数据之一------监管要求年年加新字段,业务需求不断增加新维度。设计时要用扩展表而非在主表堆字段,预留自定义字段,支持时间维度------客户信息的任何变更都应该保留历史记录。

7.2 历史可追溯

客户改了手机号,旧的号码不需要删,但需要记录"什么时候改的"。这就是时间有效性设计,支持历史追溯。

7.3 性能考量

CIF 是查询最频繁的系统之一------柜员开户、ATM 验证、手机银行登录、风控决策都需要查客户信息。需要热数据缓存、读写分离、分库分表、索引优化。


八、本篇小结

  1. 客户号设计的核心原则是"全局唯一、终身不变、无业务含义、带校验位"
  2. 个人客户和对公客户差异巨大,应该用核心表+扩展表的方式分别建模
  3. 客户-账户关系不是简单的 1:N,而是多角色、多维度的复杂关联
  4. 客户层级管理集团关系、家族关系,是风控和营销的重要基础
  5. KYC 信息是反洗钱合规的核心,必须有专门的数据表管理
  6. CIF 数据模型设计的关键词是:可扩展、可追溯、高性能

© 2026 Fintech.Ren · 银行核心业务系统专栏

相关推荐
xingbuxing_py20 小时前
精华贴分享|北交所:小市值策略的“甜蜜陷阱”还是“弹性引擎”?——一份轻度理解
python·金融·股票·理财·量化投资·股市·炒股
与遨游于天地1 天前
了解ISO 8583协议数据结构
金融
极创信息3 天前
信创产品认证怎么做?信创产品测试认证的主要流程
java·大数据·数据库·金融·软件工程
DolphinDB智臾科技3 天前
DolphinDB 走进复旦大学:量化金融实务课,技术实战正当时
金融
Elastic 中国社区官方博客4 天前
2026 年金融服务可观测性现状:从实施到业务影响
大数据·运维·人工智能·elasticsearch·搜索引擎·金融·自动化
实在智能RPA5 天前
金融行业财务审核自动化工具推荐:2026企业级AI Agent与智能合规选型指南
人工智能·ai·金融·自动化
傻啦嘿哟5 天前
金融数据风控:股票、基金净值实时抓取如何做到“0封禁”
金融
wayz115 天前
Day 17 编程实战:MLP神经网络金融预测
人工智能·神经网络·金融
2501_921649496 天前
企业定制金融数据 API:从架构设计到 Python 接入实战
大数据·开发语言·python·websocket·金融·量化