第三章 · 根基 | 银行核心业务系统专栏
一、数据模型是系统的骨架
一个客户信息系统好不好用,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:N,而是多角色、多维度的复杂关联
- 客户层级管理集团关系、家族关系,是风控和营销的重要基础
- KYC 信息是反洗钱合规的核心,必须有专门的数据表管理
- CIF 数据模型设计的关键词是:可扩展、可追溯、高性能
© 2026 Fintech.Ren · 银行核心业务系统专栏