5.3 KiB
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 타임스탬프를 포함합니다.