| **Leak_Value** | `DECIMAL(10, 4)`| NOT NULL | - | 센서에서 최종 파싱된 실측 누설값 |
| **Result** | `VARCHAR(5)` | NOT NULL | CHECK (in ('OK', 'NG'))| 합격(`OK`) 또는 불합격(`NG`) 판정 |
---
## 3. 엔티티 관계도 (Entity Relationship Diagram - ERD)
`EOL` 검사 이력은 `Users` 테이블의 작업자 고유 ID(`OperatorId`)를 외래키(`Operator`)로 참조하여, 어떤 작업자가 어떤 검사 이력을 남겼는지에 대한 일대다(1:N) 식별 및 추적이 가능합니다.
```mermaid
erDiagram
USERS {
VARCHAR_50 OperatorId PK "작업자 ID"
VARCHAR_256 Password "비밀번호"
NVARCHAR_50 OperatorName "작업자 실명"
VARCHAR_20 Role "권한 (ADMIN/OPERATOR)"
DATETIME CreatedAt "계정 생성일시"
}
EOL {
VARCHAR_50 IC_SN PK "제품 시리얼 번호"
VARCHAR_50 PCB_Barcode "PCB 바코드"
NVARCHAR_50 Maker "제조사"
NVARCHAR_50 Model "모델명"
NVARCHAR_50 Variant_1 "속성 1"
NVARCHAR_50 Variant_2 "속성 2"
VARCHAR_50 Operator FK "작업자 ID"
DATETIME Production_Date "검사 완료일시"
NVARCHAR_30 Line "생산 라인"
NVARCHAR_50 Lot_No "로트 번호"
NVARCHAR_20 Jig_No "지그 번호"
VARCHAR_10 Channel "채널 (LEFT/RIGHT)"
DECIMAL Spec_UL "스펙 상한치"
DECIMAL Spec_LL "스펙 하한치"
DECIMAL Leak_Value "실측 누출량"
VARCHAR_5 Result "판정 (OK/NG)"
}
USERS ||--o{ EOL : "performs"
```
---
## 4. 데이터 정합성 유지 전략 (Data Integrity & Optimization)
* **UPSERT 쿼리 이중화**: 제품 시리얼 `IC_SN`은 고유하므로, 동일 제품이 재검사(Retest)되거나 지연 전송되었을 경우 중복 릴레이션이 맺어지지 않도록 `MERGE` 구문을 활용해 기존 검사 행을 업데이트(UPDATE)하고 신규일 때만 신규 행을 삽입(INSERT)합니다.
* **인덱스(Index) 설계 전략**:
* **Clustered Index**: 데이터가 생성순서에 따라 밀집되도록 `Production_Date`를 포함하거나 주 키인 `IC_SN`에 적용합니다.
* **Non-Clustered Index**: 작업 이력 대량 조회(`DataView`)의 검색 속도 최적화를 위해 복합 인덱스 `IX_EOL_Search (Production_Date, Result, Lot_No)` 구성을 제안합니다.