1단계: 주요 도메인 및 엔티티 도출


2단계: 엔티티별 속성 정리

엔티티명 주요 속성 (컬럼) 설명
User user_id (PK), username, password, name, email, position, status, role, hiredate, created_at, updated_at 사원 및 관리자 정보
VacationType type_code (PK), type_name, default_days, is_deductible, description 휴가 유형 (연차, 병가 등)
VacationBalance user_id (PK, FK), type_code (PK, FK), remaining_days, updated_at 사용자별 휴가 유형 잔여 일수
(복합 PK)
VacationRequest request_id (PK), user_id (FK), type_code (FK), start_date, end_date, days_count, reason, status, created_at, updated_at 휴가 신청 내역 및 상태
VacationGrant grant_id (PK), user_id (FK), type_code(FK) grant_date, granted_days 휴가 자동 지급 내역 기록
VacationAuditLog log_id (PK), request_id (FK), changed_by (FK), change_date, old_status, new_status, comment 휴가 신청 상태 변경 기록
EvidenceFile file_id (PK), request_id (FK), is_used, original_name, unique_name, saved_path, file_size, file_type, file_order, uploaded_at 휴가 신청에 첨부된 증빙 파일 정보

📌 부록: 주요 속성값 예시

User.status (회원 상태) Enum 값

설명
PENDING 가입 승인 대기 중
ACTIVE 승인 완료
REJECTION 가입 반려됨

User.role (권한) Enum 값

설명
USER 일반 사원
ADMIN 관리자

User.position (직급) Enum 값

설명
STAFF 사원
ASSISTANT_MANAGER 대리
MANAGER 과장
SENIOR_MANAGER 차장
DIRECTOR 부장

VacationRequest.status (휴가 신청 상태) Enum 값