- MASTER_PLAN.md: 마이그레이션 전체 계획 - PROGRESS.md: 진행 상황 및 최종 결과 - phase-1: 5130 소스 스키마 분석 - phase-2: SAM 타겟 스키마 분석 - phase-3: 필드 매핑 설계 마이그레이션 결과: - 총 425건 품목 이관 완료 (models 18, parts 36, parts_sub 117, BDmodels 59, BOM 195) - tenant_id: 287 (경동기업) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
5.9 KiB
5.9 KiB
5130 품목 테이블 스키마 분석
분석일: 2025-12-21 DB: chandj (MySQL 8.0)
1. 테이블 구조 개요
1.1 품목 관련 테이블
| 테이블 | 레코드 수 | 설명 |
|---|---|---|
models |
18 | 제품 모델 (KSS01, KSE01 등) |
parts |
37 | 모델별 부품 |
parts_sub |
134 | 부품별 세부 자재 |
item_list |
9 | 품목 목록 (별도 용도) |
1.2 계층 구조
models (제품 모델)
└─ parts (부품) - model_id 참조
└─ parts_sub (세부 자재) - part_id 참조
2. 테이블 상세 스키마
2.1 models (제품 모델)
| 필드 | 타입 | NULL | 키 | 설명 |
|---|---|---|---|---|
| model_id | int | NO | PRI | 모델 ID |
| model_name | varchar(255) | NO | 모델명 (KSS01, KSE01 등) | |
| major_category | enum('스크린','스라트') | NO | 대분류 | |
| finishing_type | enum('SUS마감','EGI마감') | NO | 마감 유형 | |
| description | text | YES | 설명 | |
| guiderail_type | varchar(20) | YES | 가이드레일 유형 | |
| is_deleted | tinyint(1) | NO | 삭제 여부 | |
| update_log | text | YES | 변경 이력 | |
| created_at | datetime | YES | 생성일 | |
| updated_at | datetime | YES | 수정일 |
샘플 데이터:
model_id=12, model_name='KSS01', major_category='스크린', finishing_type='SUS마감'
model_id=14, model_name='KSE01', major_category='스크린', finishing_type='SUS마감'
2.2 parts (부품)
| 필드 | 타입 | NULL | 키 | 설명 |
|---|---|---|---|---|
| part_id | int | NO | PRI | 부품 ID |
| model_id | int | NO | MUL | 모델 ID (FK → models) |
| part_name | varchar(30) | NO | 부품명 | |
| spec | varchar(50) | YES | 규격 (120*70 등) | |
| unit | varchar(15) | YES | 단위 (SET 등) | |
| quantity | int | NO | 수량 | |
| unitprice | varchar(15) | YES | 단가 | |
| memo | text | YES | 메모 | |
| img_url | text | YES | 이미지 URL | |
| is_deleted | tinyint(1) | YES | 삭제 여부 | |
| created_at | datetime | YES | 생성일 | |
| updated_at | datetime | YES | 수정일 |
샘플 데이터:
part_id=49, model_id=12, part_name='상부브라켓', spec='120*70', unit='SET', quantity=1
part_id=50, model_id=12, part_name='하부브라켓', spec='60*40', unit='SET', quantity=2
2.3 parts_sub (세부 자재)
| 필드 | 타입 | NULL | 키 | 설명 |
|---|---|---|---|---|
| subpart_id | int | NO | PRI | 세부 자재 ID |
| part_id | int | NO | MUL | 부품 ID (FK → parts) |
| subpart_name | varchar(255) | NO | 자재명 | |
| quantity | int | NO | 수량 | |
| material | varchar(255) | YES | 재질 (SUS 1.2T 등) | |
| bendSum | varchar(15) | YES | 벤딩 합계 | |
| plateSum | varchar(15) | YES | 판재 합계 | |
| finalSum | varchar(15) | YES | 최종 합계 | |
| unitPrice | varchar(15) | YES | 단가 | |
| computedPrice | varchar(15) | YES | 계산 단가 | |
| lineTotal | varchar(15) | YES | 라인 합계 | |
| image_url | varchar(255) | YES | 이미지 URL | |
| is_deleted | tinyint(1) | YES | 삭제 여부 | |
| created_at | datetime | YES | 생성일 | |
| updated_at | datetime | YES | 수정일 |
샘플 데이터:
subpart_id=64, part_id=49, subpart_name='1차(전면)', quantity=1, material='SUS 1.2T'
subpart_id=65, part_id=49, subpart_name='2차(후면)', quantity=2, material='EGI 1.55T'
2.4 item_list (품목 목록)
| 필드 | 타입 | NULL | 키 | 설명 |
|---|---|---|---|---|
| num | int | NO | PRI | 번호 |
| item_name | varchar(100) | NO | 품목명 | |
| col13 | decimal(10,2) | YES | 가격 | |
| col60~col80 | varchar(50) | YES | 추가 속성들 |
⚠️ 컬럼명이 col60~col80으로 되어 있어 의미 파악 필요
3. 관계도
┌─────────────────┐
│ models │
│ (18 레코드) │
│ │
│ model_id (PK) │
│ model_name │
│ major_category │
│ finishing_type │
└────────┬────────┘
│ 1:N
▼
┌─────────────────┐
│ parts │
│ (37 레코드) │
│ │
│ part_id (PK) │
│ model_id (FK) ──┤
│ part_name │
│ spec │
└────────┬────────┘
│ 1:N
▼
┌─────────────────┐
│ parts_sub │
│ (134 레코드) │
│ │
│ subpart_id (PK) │
│ part_id (FK) ───┤
│ subpart_name │
│ material │
└─────────────────┘
4. 데이터 특성
4.1 major_category (대분류)
스크린(Screen)스라트(Slat)
4.2 finishing_type (마감 유형)
SUS마감(스테인리스)EGI마감(아연도금)
4.3 material (재질) - parts_sub
SUS 1.2T,SUS 1.5T(스테인리스)EGI 1.55T(아연도금)
5. 마이그레이션 고려사항
5.1 구조적 차이
| 5130 | SAM | 비고 |
|---|---|---|
| 3단계 계층 (models→parts→parts_sub) | items + item_bom_items | 구조 변환 필요 |
| 단순 FK 관계 | entity_relationships 사용 | 관계 정의 방식 다름 |
| 고정 컬럼 | JSON attributes | 유연한 속성 저장 |
5.2 매핑 방향
- models →
items(item_type='FG', 완제품) - parts →
items(item_type='PT', 부품) - parts_sub →
items(item_type='RM', 원자재) - parts → models 관계 →
item_bom_items또는entity_relationships - parts_sub → parts 관계 →
item_bom_items또는entity_relationships
5.3 데이터 변환 필요 항목
major_category→attributes.category또는 별도 분류finishing_type→attributes.finishing_typematerial→attributes.material- 가격 필드들 (varchar) → decimal 변환