数据仓库图解交互式教材
数据建模业务过程:到底要记录哪件事?
学习进度0 / 64
EN
首页课程学习业务过程:到底要记录哪件事?
2-1数据建模10 分钟

业务过程:到底要记录哪件事?

业务方说“新增贷款”时,先把这句话拆成可以被记录、核对和追问的业务过程。

业务过程贷款建模
核心概念

Business Process(业务过程)

业务过程是现实世界中一类可识别的业务活动,例如签订合同、实际放款或发生还款。建模前要先确定本次分析记录的是哪一个过程。

“新增贷款”到底指什么?

业务方问:“今年新增贷款是多少?”这句话听起来明确,实际可能对应合同约定金额、实际放款金额、新增借据本金,甚至当前贷款余额。它们来自贷款链路中的不同业务活动,不能因为都叫“贷款”就放在一起计算。

先看一条足够小的链路:张三签下 LoanContract,合同下实际形成两笔 LoanNote,之后产生 Repayment,最后某笔借据可以进入结清状态。每个节点都是真实业务对象或状态,但它们记录的事情不同。

  • 合同签订:记录银行和客户约定了什么。
  • 实际放款:记录哪一笔借据真正形成了贷款本金。
  • 实际还款:记录客户实际偿还了多少、什么时候偿还。
  • 结清:表示某笔借据的余额已经归零,不等于又发生了一笔放款。
业务过程实验 · 先选要记录的事情

沿着贷款链路选择一个业务过程

点击签约、放款、还款或结清,查看它对应的业务对象、事件和记录数量;再选择一个数字,检查它回答的到底是哪一个问题。

贷款业务过程选择

先确定要记录的环节,再讨论表该怎么设计。

BUSINESS PROCESS · 业务过程

同一条贷款链上,记录的事情并不相同

点击环节,查看它对应的业务对象、事件和记录数量。

客户Customer张三 · customer_id C001
这个环节的声明 · 2 条记录

Business Process:贷款放款分析对象:LoanNote事件:实际放款

本例合同LoanContractcontract_id C001 · contract_amount ¥1,000,000

合同约定的额度,不等于已经形成的贷款本金。

当前选中的业务环节实际放款
2 条记录
业务对象
LoanNote
发生的事件
实际放款
记录示例
N001 ¥300,000 · N002 ¥200,000
SAME QUESTION · 同一句问题

“今年新增贷款是多少?”

选择一个数字,先看清它究竟在回答哪件事。

这个数字的业务含义新签合同金额

回答“今年签了多少合同约定额度”,对应 LoanContract 的合同事件;它不是已经放出的本金。

DECLARE · 写下判断

把要记录的事情说成一句话

Business Process贷款放款
分析对象LoanNote
事件实际放款

业务对象 ≠ 业务过程 ≠ 分析事实。默认分析“贷款放款”时,本例的声明是:Business Process:贷款放款;分析对象:LoanNote;事件:实际放款。

先写一条业务过程声明

如果问题是“今年实际放出了多少贷款本金”,建模前可以先写下:Business Process:贷款放款;分析对象:LoanNote;事件:实际放款。这个声明让后续每个字段和数字都有了检查依据。

如果问题改成“今年签了多少合同”,声明就会变成贷款签约和 LoanContract。问题变了,记录对象也应该跟着变,而不是继续沿用上一种业务含义。

  • 业务对象回答“涉及谁、哪份合同、哪笔借据”。
  • 业务过程回答“发生了哪类活动”。
  • 分析事实回答“要把哪类活动记录成可分析的事件”。