合同维度是什么
合同维承载签约主体、合同期限与状态,是订单、结算、返利等事实挂靠的法律依据。起止日期支撑「在某个时点合同是否有效」的判断。续签要不要并与原合同同一个成员,取决于业务对连续性的要求:若按合同号严格管理,续签是新成员,用父合同键串联;若业务只关心合作关系的连续性,可继承原成员并顺延期限。
基本信息
| 主键 | contract_id 业务键 + contract_sk 代理键 |
|---|---|
| 期限字段 | start_date / end_date(含或不含当日需写明) |
| 状态取值 | 待生效 / 生效中 / 已到期 / 已终止 |
| 续签处理 | 新成员并用 parent_contract_id 指向原合同 |
| 事实关联 | 订单、结算、返利事实挂 contract_sk |
| 主体变更 | 转让或更名要记录前后主体,审计场景不可覆盖 |
典型使用场景
- 有效期判断:结算时校验发生日期是否落在合同期内
- 到期预警:提前 30/60 天提醒业务续签,避免断档
- 返利核算:按合同约定的返点比例计费,比例随合同版本变化
- 对账追溯:对账差异追溯到具体合同条款与签署版本
- 合规审计:查询某个时点有效的合同清单与签约主体
有效合同与续签链查询
有效合同与续签链查询
SELECT contract_id, party_name, start_date, expire_date, status
FROM dim_contract
WHERE :asof >= start_date AND :asof < expire_date -- 半开区间,避免到期日重复计算
AND status <> '已终止'; -- 提前终止的合同即使未到期也排除
SELECT c1.contract_id, c2.contract_id AS renewed_as
FROM dim_contract c1
LEFT JOIN dim_contract c2 ON c2.parent_contract_id = c1.contract_id -- 顺着续签链看合同连续性关键字段读法
| 字段 | 含义 | 注意点 |
|---|---|---|
| start_date | 合同生效日 | 与签署日可能不同,别混用 |
| expire_date | 合同到期日 | 含或不含当日必须统一,否则多算一天 |
| status | 当前状态 | 类型 1 覆盖只反映当前,历史要有变更日志 |
| parent_contract_id | 前序合同 | 续签链的唯一可靠线索 |
到期日的开闭区间是合同类报表的高频错源:约定 end_date 不含当日(半开区间)可让「上一份到期日 = 下一份生效日」自然衔接,不产生空档或重叠。
提前终止的合同要保留被终止的事实与终止日期,不要直接删行或改状态为已到期:结算与审计都需要看到「原计划到期」和「实际终止」两个日期。