4. 台账数据结构设计:字段定义与表结构

误差预算台账的核心是数据结构。一个设计良好的台账表,必须能够完整记录每个制品的测量信息,并支持后续的误差率计算与统计分析。本节将定义台账的字段规范,并给出标准表结构。

4.1 核心字段定义

台账的每条记录对应一个零件在某道工序上的单次实测值。字段定义遵循 Metric Design 的“可追溯、可计算、可归因”原则,共包含 7 个必填字段:

字段名称 数据类型 约束 说明
零件号 VARCHAR(32) NOT NULL 唯一标识一个零件,支持字母、数字与连字符
工序 VARCHAR(16) NOT NULL 工序代码,如 OP10、OP20、FIN
名义值 DECIMAL(10,4) NOT NULL 设计图纸给定的理论尺寸,单位 mm
公差上限 DECIMAL(10,4) NOT NULL 允许的最大偏差(含符号),如 +0.0500
公差下限 DECIMAL(10,4) NOT NULL 允许的最小偏差(含符号),如 -0.0300
实测值 DECIMAL(10,4) NOT NULL 实际测量得到的尺寸,单位 mm
测量时间 DATETIME DEFAULT NOW() 记录生成时间,用于时序分析
字段设计要点: 名义值与公差分开存储,而非存储“上偏差/下偏差”的值,是为了在误差率计算时能直接计算偏差量(实测值 - 名义值),并与公差带进行对比。实测值保留 4 位小数,满足大多数精密制造场景的精度要求。

4.2 台账表结构(SQL DDL)

以下为符合上述字段定义的数据库表结构,采用标准 SQL 语法,适用于 MySQL / PostgreSQL / SQLite:

CREATE TABLE error_budget_ledger (
    id              BIGINT          AUTO_INCREMENT PRIMARY KEY,
    part_number     VARCHAR(32)     NOT NULL,
    operation       VARCHAR(16)     NOT NULL,
    nominal_value   DECIMAL(10,4)   NOT NULL,
    tol_upper       DECIMAL(10,4)   NOT NULL,
    tol_lower       DECIMAL(10,4)   NOT NULL,
    measured_value  DECIMAL(10,4)   NOT NULL,
    measure_time    DATETIME        DEFAULT CURRENT_TIMESTAMP,

    -- 索引:加速按零件与工序的查询
    INDEX idx_part_op (part_number, operation),

    -- 约束:公差上限必须大于等于公差下限
    CONSTRAINT chk_tol_range CHECK (tol_upper >= tol_lower)
);
表结构说明:
  • id:自增主键,保证每条记录唯一。
  • idx_part_op:联合索引,覆盖“按零件+工序”的查询场景,这是误差率计算最频繁的过滤条件。
  • chk_tol_range:检查约束,防止录入公差上限小于下限的逻辑错误。
  • measure_time:默认当前时间,无需手动传入。

4.3 字段关系与数据流

为了直观展示字段之间的计算关系,下图描述了从原始测量到误差率计算的数据流向:

台账字段关系与误差率计算数据流 台账字段关系与误差率计算数据流 零件号 + 工序 名义值 + 公差 实测值 偏差量计算 偏差 = 实测值 − 名义值 超差判定 偏差 < 下限 或 偏差 > 上限 误差率统计 超差数 / 总测量数 字段设计支撑 完整的计算链路

4.4 字段设计避坑指南

常见设计错误:
  • 将名义值与公差合并为一个字段(如存储“50±0.05”字符串),导致计算时必须解析字符串,增加复杂度与出错风险。
  • 使用 FLOAT/DOUBLE 存储尺寸值,浮点数存在精度误差,在公差带边界判定时可能产生误判。必须使用 DECIMAL 定点数。
  • 缺少测量时间字段,无法追溯测量顺序,也无法进行时间序列分析(如过程能力指数 Cpk 计算)。
  • 未建立联合索引,当台账数据量超过 10 万条时,按零件+工序的查询会变得非常缓慢。

4.5 台账数据示例

以下为 3 条符合表结构的示例记录,展示实际数据如何填充:

零件号 工序 名义值 公差上限 公差下限 实测值 测量时间
SHAFT-001 OP10 50.0000 +0.0500 -0.0300 50.0210 2025-03-10 08:15:30
SHAFT-001 OP20 30.0000 +0.0200 -0.0200 30.0350 2025-03-10 09:42:10
FLANGE-042 FIN 100.0000 +0.1000 -0.1000 99.9500 2025-03-10 10:05:00
数据解读: 第 2 条记录中,实测值 30.0350 超出公差上限 30.0200,偏差量为 +0.0350,属于超差件。该记录将在误差率计算中被标记为“不合格”。第 1 条和第 3 条记录均在公差范围内。