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 条记录均在公差范围内。