duckil_plm/DATABASE.md
2024-12-12 18:31:36 +09:00

5.3 KiB

FEMS 데이터베이스 구조

1. 핵심 엔티티

Company (기업)

  • 설명: 최상위 기업 정보 관리
  • 주요 필드:
    • id (UUID, PK)
    • name (String)
    • businessNumber (String, Unique)
    • address, tel, email
    • representative
    • isActive (Boolean)
    • contractStartDate, contractEndDate

Branch (지점/공장)

  • 설명: 기업의 지점 및 공장 정보
  • 주요 필드:
    • id (UUID, PK)
    • companyId (UUID, FK)
    • name, address, tel
    • isActive (Boolean)

User (사용자)

  • 설명: 시스템 사용자 관리
  • 주요 필드:
    • id (UUID, PK)
    • companyId, branchId, departmentId (FK)
    • username, password
    • name, email, phone
    • role (Enum)
    • isActive, lastLoginAt

Equipment (설비)

  • 설명: 설비 기본 정보
  • 주요 필드:
    • id (UUID, PK)
    • companyId, branchId, zoneId (FK)
    • name, model, manufacturer
    • type (Enum)
    • specifications (JSON)
    • installationDate, lastMaintenance

2. 계약/과금 관리

Contract (계약)

  • 설명: 서비스 계약 관리
  • 주요 필드:
    • id (UUID, PK)
    • companyId (FK)
    • contractNumber (Unique)
    • status (Enum)
    • startDate, endDate
    • totalAmount, paymentTerms
    • termsConditions (JSON)

ContractDetail (계약 상세)

  • 설명: 계약 세부사항
  • 주요 필드:
    • id (UUID, PK)
    • contractId (FK)
    • serviceType
    • specifications (JSON)
    • unitPrice, quantity

3. 조직 관리

Department (부서)

  • 설명: 부서 정보 (계층 구조)
  • 주요 필드:
    • id (UUID, PK)
    • companyId, branchId (FK)
    • parentId (UUID, Self-referential)
    • name, description
    • isActive

Role (권한)

  • 설명: 권한 그룹 관리
  • 주요 필드:
    • id (UUID, PK)
    • companyId (FK)
    • name, description
    • permissions (JSON)
    • isActive

UserRole (사용자-권한 매핑)

  • 설명: 사용자와 권한 연결
  • 주요 필드:
    • id (UUID, PK)
    • userId, roleId (FK)

4. 에너지 관리

EnergyUsage (사용량)

  • 설명: 실시간 에너지 사용량
  • 주요 필드:
    • id (UUID, PK)
    • companyId, branchId (FK)
    • timestamp
    • electricity, gas, water, steam

EnergyCost (비용)

  • 설명: 에너지 비용 정보
  • 주요 필드:
    • id (UUID, PK)
    • companyId, branchId (FK)
    • year, month
    • category (Enum)
    • amount, usage, unitPrice

EnergyTarget (목표)

  • 설명: 에너지 절감 목표
  • 주요 필드:
    • id (UUID, PK)
    • companyId, branchId (FK)
    • year, month, category
    • targetUsage, targetCost

EnergyPrediction (예측)

  • 설명: 에너지 사용량 예측
  • 주요 필드:
    • id (UUID, PK)
    • companyId, branchId (FK)
    • modelType, parameters (JSON)
    • accuracy, lastTrainingDate
    • status, validationMetrics

5. 설비 관리

Zone (구역)

  • 설명: 공장 내 구역 정보
  • 주요 필드:
    • id (UUID, PK)
    • branchId (FK)
    • name, description
    • area (Float)

EquipmentData (설비 데이터)

  • 설명: 설비 실시간 데이터
  • 주요 필드:
    • id (UUID, PK)
    • equipmentId (FK)
    • timestamp
    • parameters, measurements (JSON)

MaintenanceLog (정비 이력)

  • 설명: 설비 정비 이력
  • 주요 필드:
    • id (UUID, PK)
    • equipmentId (FK)
    • type, status (Enum)
    • scheduledDate, completionDate
    • description, findings, actions
    • parts, cost, personnelInfo (JSON)

6. 모니터링/알람

AlarmRule (알람 규칙)

  • 설명: 알람 규칙 설정
  • 주요 필드:
    • id (UUID, PK)
    • companyId, branchId (FK)
    • severity (Enum)
    • conditions, actions (JSON)
    • schedule, notificationConfig

Alert (알람)

  • 설명: 알람 이력
  • 주요 필드:
    • id (UUID, PK)
    • type (Enum)
    • message
    • read (Boolean)
    • companyId, branchId (FK)

7. 대시보드

Dashboard (대시보드)

  • 설명: 대시보드 설정
  • 주요 필드:
    • id (UUID, PK)
    • userId (FK)
    • name, description
    • layout, isDefault

Widget (위젯)

  • 설명: 위젯 구성
  • 주요 필드:
    • id (UUID, PK)
    • dashboardId (FK)
    • type, title
    • configuration (JSON)
    • position, size
    • refreshInterval

8. 시스템 설정

SystemSetting (환경 설정)

  • 설명: 시스템 환경 설정
  • 주요 필드:
    • id (UUID, PK)
    • companyId (FK)
    • category, key
    • value, description
    • dataType (Enum)
    • isSystem

ApiKey (API 인증)

  • 설명: API 인증 관리
  • 주요 필드:
    • id (UUID, PK)
    • companyId (FK)
    • keyName, apiKey
    • permissions (JSON)
    • expiryDate, lastUsedAt
    • ipRestrictions

9. 보고서 관리

ReportTemplate (보고서 템플릿)

  • 설명: 보고서 템플릿 관리
  • 주요 필드:
    • id (UUID, PK)
    • companyId (FK)
    • name, description
    • type (Enum: daily/weekly/monthly/quarterly/yearly/custom)
    • configuration (JSON)
    • scheduleConfig (JSON)
    • version

Report (보고서)

  • 설명: 생성된 보고서 관리
  • 주요 필드:
    • id (UUID, PK)
    • templateId, companyId, branchId (FK)
    • generatedBy, approvedBy (FK)
    • title, reportDate
    • status (Enum: draft/generated/approved/published)
    • data (JSON)
    • format (Enum: pdf/excel/html)
    • approvedAt, publishedAt
    • storageUrl

Note: 모든 테이블은 created_at, updated_at 타임스탬프를 포함합니다.