引言
需求:设计一个有效的数据模型来追踪晶圆在制造过程中的状态和流转路径,使用桥接表来管理多对多的工序关系,同时记录时间、状态等信息。需要确保模型的可扩展性、查询效率,以及处理异常情况的能力。【某半导体制造业面试题】
在半导体制造等离散制造行业中,对晶圆在制品(WIP)进行状态建模时,通过桥接表记录工序流转路径是典型的 多对多关系追踪方案。
一、核心模型设计原则
动态路径追踪:既要记录当前状态,也要保存完整历史轨迹
工序关系解耦:工序定义与流转路径分离,支持动态调整产线配置
时间维度记录:精确到秒级的时间戳用于生产周期分析
异常状态兼容:包含返工、报废等特殊流转场景
二、核心数据表结构
1. 基础实体表
-- 晶圆批次表(物理实体)CREATE TABLE WaferLot (lot_id VARCHAR(20) PRIMARY KEY,product_type VARCHAR(50),start_time DATETIME,qty INT);-- 工序定义表(逻辑节点)CREATE TABLE ProcessStep (step_id INT PRIMARY KEY,step_name VARCHAR(50),is_quality_check BOOLEAN -- 是否质检工序);
2. 桥接表(核心流转记录)
CREATE TABLE WaferTransition (transition_id BIGINT AUTO_INCREMENT PRIMARY KEY,lot_id VARCHAR(20),from_step INT, -- 可为NULL表示起始点to_step INT NOT NULL,enter_time DATETIME NOT NULL,exit_time DATETIME, -- NULL表示仍在当前工序status ENUM('WAITING', 'PROCESSING', 'COMPLETED', 'HOLD'),equipment_id VARCHAR(20), -- 使用设备operator_id VARCHAR(20),is_rework BOOLEAN DEFAULT FALSE,FOREIGN KEY (lot_id) REFERENCES WaferLot(lot_id),FOREIGN KEY (from_step) REFERENCES ProcessStep(step_id),FOREIGN KEY (to_step) REFERENCES ProcessStep(step_id));
三、关键业务逻辑实现
1. 实时WIP状态查询
-- 当前各工序在制品数量SELECTto_step AS current_step,COUNT(DISTINCT lot_id) AS wip_countFROM WaferTransitionWHERE exit_time IS NULLGROUP BY to_step;-- 单个批次的完整路径SELECTstep_name,enter_time,exit_time,statusFROM WaferTransition wtJOIN ProcessStep ps ON wt.to_step = ps.step_idWHERE lot_id = 'LOT123'ORDER BY enter_time;
四、高级分析场景
1. 周期时间(Cycle Time)计算
-- 工序平均处理时间SELECTstep_name,AVG(TIMESTAMPDIFF(SECOND, enter_time, exit_time)) AS avg_cycle_timeFROM WaferTransitionJOIN ProcessStep ON to_step = step_idWHERE exit_time IS NOT NULLGROUP BY step_id;
2. 瓶颈工序识别
-- 当前各工序队列长度SELECTps.step_name,COUNT(wt.lot_id) AS queue_lengthFROM ProcessStep psLEFT JOIN WaferTransition wt ON ps.step_id = wt.to_stepAND wt.status = 'WAITING'GROUP BY ps.step_id;
五、扩展设计建议
版本化工序路线:添加
route_version
字段应对工艺变更设备效能监控:关联设备维护记录,分析设备利用率
异常路径标记:增加
defect_code
,rework_count
字段时序数据库集成:对高频数据(秒级状态更新)使用 InfluxDB 存储
六、典型数据流
晶圆入场 --> 创建初始记录(to_step=STEP1, enter_time=now())
工序完成 --> 更新exit_time,创建下一工序记录
质量抽检 --> 插入特殊质检工序记录
异常发生 --> 标记HOLD状态,生成异常事件记录
返工处理 --> 创建反向流转记录(is_rework=True)
这种设计可实现产线透明化,支持实时WIP监控、工艺优化分析等高级应用场景。

往期精彩
3分钟学会SQL中的序列分析法,轻松搞定用户行为分析及工业设备监控问题?
3分钟学会SQL中的断点去重技术,轻松搞定连续相同状态数据去重问题?
颠覆认知!COUNT(DISTINCT) OVER(ORDER BY) 原生写法 VS 替代方案,谁才是王者?
3分钟学会SQL中的断点分组技术,轻松搞定连续相同状态数据分组问题?
宽表爆炸?动态Schema + 增量更新,轻松化解千字段扩展难题
文章转载自会飞的一十六,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




