文章
业务术语原子化拆分
业务术语原子化拆分,确保每个最小粒度的业务术语对应唯一字段。以下是针对"合同变更"的深度拆解方案:
1. 业务术语原子化拆分原则
原则 | 说明 | 示例 |
---|---|---|
单一字段对应 | 每个术语仅对应一个技术字段 | "变更类型"术语只对应change_type 字段 |
业务不可再分 | 术语达到最小业务语义单元 | 不拆"申请人姓名",但拆"申请人部门" |
消除二义性 | 同一术语在不同系统中字段名不同时,建立映射表 | change_reason ↔ alter_cause |
2. "合同变更"术语拆解示例
原始术语:
合同变更(term_ct_change)
定义:双方协商一致的合同条款修改行为
拆解后原子术语:
-- 业务术语表新增记录
INSERT INTO 业务术语表 VALUES
('term_ct_type', 'proc_contract', '合同变更类型',
'条款修改的分类标识', '代码值:1-条款,2-金额,3-期限', '代码值完整性100%', NULL, '示例:2表示金额调整'),
('term_ct_reason', 'proc_contract', '合同变更原因',
'引发变更的具体事由', '长度≤200字符', '非空校验', NULL, '示例:汇率波动导致付款币种变更'),
('term_ct_applicant', 'proc_contract', '合同变更申请人',
'提出变更请求的主体', '需关联员工ID', '与HR系统一致性校验', '申请人有效性=员工状态="在职"', NULL);
3. 字段级精准映射方案
映射表结构优化建议:
ALTER TABLE 主元模型存储表 ADD COLUMN mapping_type STRING COMMENT '映射类型:1-完全匹配,2-派生字段,3-多字段组合';
-- 精确映射示例
INSERT INTO 主元模型存储表 VALUES
('meta_cc01', 'fld_cc01', 'term_ct_type', 'L2', '王五', '法务部', '1'),
('meta_cc02', 'fld_cc02', 'term_ct_reason', 'L3', '王五', '法务部', '1'),
('meta_cc03', 'fld_cc03', 'term_ct_applicant', 'L2', '李四', 'HR部', '1');
特殊场景处理:
场景:同一业务术语在不同系统的字段名不同
方案:增加术语别名表
CREATE TABLE 业务术语别名表 (
alias_id STRING,
term_id STRING,
system_code STRING COMMENT '系统标识',
field_name STRING COMMENT '该系统下的字段名',
UNIQUE(term_id, system_code)
);
-- 示例:合同变更原因在ERP中叫change_reason,在CRM中叫contract_alter_cause
INSERT INTO 业务术语别名表 VALUES
('alias_01', 'term_ct_reason', 'ERP', 'change_reason'),
('alias_02', 'term_ct_reason', 'CRM', 'contract_alter_cause');
4. 数据一致性保障机制
(1)术语-字段关系校验SQL
-- 检查是否有字段映射到已废弃术语
SELECT f.field_name, t.term_name
FROM 字段存储表 f
JOIN 主元模型存储表 m ON f.field_id = m.field_id
JOIN 业务术语表 t ON m.term_id = t.term_id
WHERE t.status = 'deprecated'; -- 建议术语表增加状态字段
(2)术语血缘分析

5. 实施效果演示
查询示例:获取字段完整业务上下文
SELECT
f.field_name,
t.term_name,
t.definition,
a.field_name AS alt_name_in_erp
FROM
字段存储表 f
JOIN 主元模型存储表 m ON f.field_id = m.field_id
JOIN 业务术语表 t ON m.term_id = t.term_id
LEFT JOIN 业务术语别名表 a ON t.term_id = a.term_id AND a.system_code = 'ERP'
WHERE
f.table_id = 'tbl_contract';
输出结果:
field_name | term_name | definition | alt_name_in_erp |
---|---|---|---|
change_type | 合同变更类型 | 条款修改的分类标识 | change_category |
change_reason | 合同变更原因 | 引发变更的具体事由 | alter_reason |
关键改进点总结
- 术语粒度:从宽泛的"合同变更"拆分为不可再分的原子术语
- 映射精准度:每个术语唯一对应一个技术字段(通过别名表处理系统差异)
- 一致性保障:通过校验SQL和血缘分析确保模型健康度