粒度声明四要素
01

实体:订单、商品、客户或事件

02

时间:发生、快照或累计窗口

03

键:唯一标识与组合键

04

例外:取消、退款、重开与补录

结论:先声明一行代表什么

订单表可能是一行一个订单,也可能是一行一个订单商品;库存表可能是流水,也可能是每日快照。名称相似但粒度不同,直接聚合或 Join 会重复计算。

每个模型都应有可读的粒度句,例如“每个门店、每个商品、每天一行的日终库存快照”。

粒度由实体、时间和键共同决定

只写主键不够。事件表的同一业务对象可能多次发生,快照表的同一对象在不同日期重复出现,累计表还包含窗口范围。

记录业务键、技术键、时间字段、去重规则,以及取消、退款、重开和补录如何表示。

Join 前先比较两侧基数

一对多连接后对“一”侧金额求和会放大结果;多对多连接更需要桥接表或预聚合。AI 生成查询时若看不到基数和允许路径,很容易选择技术上可执行但业务上错误的 Join。

为每条关系标注一对一、一对多或多对多、连接键、过滤条件和有效时间。

把粒度写进测试和语义

测试主键唯一、非空、重复比例、每日行数与 Join 前后行数。指标定义要写明计算粒度和可切分维度,避免在错误层级聚合。

BuildTable 的 AI 友好建模方向可以承载这些元数据;具体契约、测试和发布能力仍应在项目中确认。

用反例验收模型

准备一个订单多商品、部分退款、跨日状态变化和同客户多门店的样本,分别计算订单数、商品销量和收入。要求模型与人工结果一致。

验收不仅看 SQL 是否运行,还要看生成查询是否选择正确粒度、关系和去重方式,并能解释选择依据。

公开参考资料

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

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

下载 BuildTable