计量单位链
01

Quantity:数值与原单位

02

Dimension:质量、体积、数量等

03

Conversion:系数、偏移与条件

04

Context:产品、包装、温压、版本

05

Control:精度、守恒与异常

结论:数值必须和单位作为一个整体

100 可能是千克、升、箱或件。把 amount 存成裸数字,再靠字段名猜单位,会在跨系统汇总时产生数量级错误。每个数量事实应保存 value、unit_code 与测量语境。

换算只允许在相同物理维度内进行。千克与吨可以转换,千克与升需要产品密度和条件,箱与件需要包装规格;没有这些上下文时应拒绝而不是使用通用系数。

建立标准单位与维度字典

dim_unit 保存稳定代码、名称、符号、dimension、base_unit、scale、offset 和标准来源。质量、长度、体积、温度、货币与计数分开;同一符号的大小写也可能有不同含义。

采用标准代码可减少 kg/KG/公斤碎片,但源值和原单位保留用于审计。映射错误不能通过覆盖原始数据修复。

区分线性、仿射和产品特定换算

多数质量单位可用 base = value×factor;温度等可能需要 offset;包装和配方依赖 product_id、pack_version 与有效期。复杂换算应保存方法 ID,不把公式藏在报表。

“1 箱=12 件”在改包装后可能变为 10 件。订单发生时要绑定当时包装版本,当前规格不能重写历史销量。

物理条件会改变换算结果

液体质量与体积换算需要密度,密度又受温度、压力、浓度和批次影响。若业务采用标准状态,应记录标准条件;实测值则保存 measurement_context。

缺少条件时可以给出业务批准的估算,并标记 estimated 与误差范围,但不能展示为实验室精度。

事实表保留原值与规范值

事实可保存 original_value、original_unit、canonical_value、canonical_unit、conversion_id 和 conversion_version。原值支持审计,规范值支持稳定聚合。

退款、损耗和退料保持符号与单位一致。不要先汇总混合单位再换算;应在最细可用粒度转换,再按规范单位求和。

精度和舍入是模型政策

定义输入精度、计算中间精度、展示精度和舍入模式。逐行舍入与汇总后舍入会有差异;库存与结算应采用批准规则并保存 residual。

浮点类型可能引入二进制误差,关键数量宜用定点数。把所有值保留过多小数也会制造虚假精度。

禁止维度不一致与循环矛盾

加载时验证 from/to 的 dimension 相同,产品特定规则的范围匹配。换算图若 A→B→C 与 A→C 不一致,应报警而非任选路径。

选择唯一权威路径或优先级,并保留直接与推导来源。系数为零、负值、过期或有效期重叠均进入质量队列。

语义层明确指标使用单位

“销量”应拆为件数、重量、体积或标准箱,不允许自动把不同量纲组合。页面显示目标单位和转换覆盖率,允许用户在可比单位间切换。

价格也要绑定计价单位:元/千克与元/箱不能直接比较。单位转换与币种转换是两套独立政策,顺序和有效期都要记录。

验收清单

测试标准单位、包装换版、温度偏移、密度缺失、部分箱、负数量、循环路径、过期规则和舍入尾差。检查原值可回算、规范汇总守恒、不可比单位被拒绝。

与称重、仓储、ERP 和财务样本对账,差异分类为源单位、规格、条件、精度和时点。只验证整数箱无法覆盖真实边界。

换算服务要提供可追溯的决策过程

每次转换输出 conversion_result:输入值与单位、目标单位、所选路径、规则版本、上下文、未舍入值、舍入值和质量状态。业务指标引用 result_id,避免报表各自复制公式。

规则选择按直接批准规则、产品规格、受控推导路径排序;存在两个同优先级候选时拒绝并提示。规则发布先回放历史样本,比较新旧转换影响,再确定是否重述库存与销售。不能让包装主数据更新后所有历史自动漂移。

实施时先建立不可换算清单

盘点源系统全部单位代码,按已标准化、产品特定、需要物性、未知和错误五类处理。未知单位进入隔离表并保留原事实;在业务负责人补齐前,不参与规范汇总。

对高价值或监管数量设置更严格精度与双人审批。批处理记录转换覆盖率、估算比例、最大尾差和异常路径;覆盖率提升不能以默认系数掩盖未知。

主数据变更需要影响分析与回放

包装规格、密度或标准单位换版前,先计算受影响产品、事实期间、库存余额和下游指标。业务确认只对新交易生效,还是需要重述未结库存与历史报表;两种选择生成不同 conversion_policy。

回放同一批事实时保存旧新规范值和差异原因。超过阈值的差异由仓储、质量或财务抽样复核。发布后不能只更新维表缓存,还要让语义层、报表与导出引用相同版本。

跨系统对账以原单位、规范单位和转换路径三列呈现。若两边原值一致而规范值不同,问题在规则;若原值已不同,应回到采集或交易链路,不能继续调换算系数使总数相等。

BuildTable.ai 边界

先选一个包装变化频繁的产品族,治理单位与规格,回放历史并发布单位明确的指标。上线后监控未知单位、估算比例、过期规则和守恒差异。

BuildTable.ai 可作为单位字典、换算规则与规范事实设计候选,但本文不证明内置完整单位标准、物性数据库或自动选择换算。规则需由业务和工程负责人确认。

公开参考资料

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

联系我们讨论企业数据建模场景并获取 BuildTable Desktop。

联系我们