大数据

业务术语原子化拆分

业务术语原子化拆分,确保每个最小粒度的业务术语对应唯一字段。以下是针对"合同变更"的深度拆解方案:

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_nameterm_namedefinitionalt_name_in_erp
change_type合同变更类型条款修改的分类标识change_category
change_reason合同变更原因引发变更的具体事由alter_reason

关键改进点总结

  1. 术语粒度:从宽泛的"合同变更"拆分为不可再分的原子术语
  2. 映射精准度:每个术语唯一对应一个技术字段(通过别名表处理系统差异)
  3. 一致性保障:通过校验SQL和血缘分析确保模型健康度