4.5 KiB
4.5 KiB
Integration DB Plan
Goal
organization.xlsx, MH.xlsx, payment.csv를 하나의 통합 DB로 수용하고,
조직 현황, 프로젝트별 분석, 팀/개인별 분석, 자리배치도가 같은 기준 데이터를 바라보도록 정리한다.
Source Summary
1. organization.xlsx
용도:
- 인원 기본 정보
- 조직 구조
주요 컬럼:
nametagrankposcocellteamdivgrpartphmail
해석:
tag는 사번 또는 내부 인원 식별자로 사용- 조직 정보는
part > gr > div > team > cell구조
2. MH.xlsx
용도:
- 일자별 인원 근무 실적
- 프로젝트별 투입 시간
- 연장근무 포함 세부 투입 슬롯
주요 컬럼:
근무일자팀 분류팀사원번호이름직책user_state시차시간메인업무/추가업무1~5/연장근무프로젝트 코드프로젝트명서브 코드근무시간
추가 시트:
Sheet2- 프로젝트 코드와 PM 이름 매핑으로 추정
3. payment.csv
용도:
- 프로젝트별 수입/지출 전표
주요 컬럼:
프로젝트코드사업명사업명(표출PJT)사업명(인트라넷기준)사업분야세부분야부서명팀명거래처적요차변공급가대변공급가지출수입구분프로젝트성격
Recommended Model
Raw Layer
원본을 그대로 적재하는 영역.
raw_organization_importraw_mh_importraw_payment_import
원칙:
- 원본 행을 최대한 손대지 않고 저장
- 파일명, 업로드시각, 배치 ID 같이 저장
Standard Layer
정규화된 운영 테이블.
Members
membersidemployee_idnamecompanyrankpositionphoneemailactive
Organization
-
org_unitsidunit_typenameparent_id
-
member_org_assignmentsidmember_idpart_namegroup_namedivision_nameteam_namecell_nameeffective_fromeffective_to
Projects
-
projectsidproject_codeproject_namedisplay_nameintranet_namedomainsubdomainproject_typeproject_nature
-
project_aliasesidproject_idalias_typealias_value
-
project_pm_assignmentsidproject_idmember_idsource
Work Logs
-
work_logsidmember_idwork_dateteam_categoryteam_nameuser_stateshift_hourslate_flag
-
work_log_segmentsidwork_log_idproject_idactivity_codehoursis_overtimeslot_type
Vouchers
vouchersidcompany_namerequest_dateissue_dateissue_monthaccount_codemanagement_account_codeproject_iddepartment_nameteam_namecustomer_namesummarydebit_amountcredit_amountexpense_amountincome_amountvoucher_typeproject_naturenote
Reference
member_cost_rates- 직급별 표준 인건비
Matching Rules
Member Match
우선순위:
MH.xlsx.사원번호organization.xlsx.tag- 이름 단독 매칭은 보조 규칙으로만 사용
원칙:
employee_id가 있으면 그 값으로 병합- 이름만 같은 경우 자동 병합 금지
Project Match
우선순위:
project_code사업명(인트라넷기준)사업명(표출PJT)프로젝트명
원칙:
project_code를 정식 키로 사용- 이름 차이는
project_aliases로 흡수
Migration Strategy
Phase 1
payment.html,mh.html을 현재 대시보드 탭에 편입- 기존 HTML 기능은 유지
- 파일은 backend route를 통해 iframe으로 연결
Phase 2
- raw import 테이블 생성
- 원본 3종 import 스크립트 작성
- 파일별 업로드/재적재 배치 ID 관리
Phase 3
- 표준 테이블 생성
- raw -> standard 정규화 파이프라인 작성
- 멤버/프로젝트 매핑 규칙 적용
Phase 4
payment.html,mh.html의 파일 직접 파싱 로직을 API 기반 조회로 전환- 프론트는 공통 DB 기준으로만 동작
Immediate Next Tasks
- Postgres 스키마 초안 SQL 작성
payment.csvimport 파서 작성MH.xlsximport 파서 작성organization.xlsximport 파서 작성- 멤버/프로젝트 중복 병합 규칙 구현