Join 契约最小内容
01

路径:哪些模型可以连接

02

基数:1:1、1:N、N:M

03

键:业务键与空值处理

04

时间:当前与历史有效关系

05

保护:行数、重复与扇出测试

Join 成功不代表结果正确

数据库只验证语法和类型,不知道“客户当前归属门店”与“客户历史下单门店”的业务差别。错误关系往往不会报错,只会让指标悄悄变大或归属错误。

语义模型需要把可用关系从隐含 SQL 提升为可审查的契约。

契约必须包含业务时间

组织、客户等级、商品分类和区域归属会变化。用当前维度连接历史事实会重写历史,需要按生效区间连接或明确接受当前视角。

记录关系的开始、结束、当前标记、晚到变更和未知成员处理。

多对多关系需要显式建模

商品与活动、客户与标签、账户与负责人常是多对多。直接 Join 会产生组合膨胀,应使用桥接表、权重、去重或先聚合策略。

契约要说明哪些指标允许跨桥接表聚合,以及不可加指标如何处理。

把失败变成阻断而不是警告

测试关系键唯一性、引用完整性、Join 前后行数、扇出倍数和指标对账。超过约定阈值时阻止发布,避免带病模型进入 AI 分析。

记录契约所有者、版本、依赖指标和变更审批,使失败能定位到具体责任。

用查询路径验收语义层

准备同一指标按客户、商品、活动和历史组织切分的案例,检查系统是否选择被允许的 Join,并拒绝不安全路径。

对比手写 SQL、通用元数据目录和受治理语义层时,重点评估关系表达、测试、版本、影响分析和退出能力。

公开参考资料

开始构建 AI 友好的数据基础

下载 BuildTable,或联系我们讨论企业数据建模场景。

下载 BuildTable