MMCL/docs/table_layout.md
2026-09-04 11:24:42 +09:00

7.0 KiB

MMCL 데이터베이스 테이블 레이아웃 (전체 상세판)

프로젝트에 구성된 총 7개의 테이블 구조에 대한 상세 레이아웃 및 명세서입니다.

ERD 요약

erDiagram
    dev_info ||--o{ pos_info : "위치 참조 (dev_posID)"
    dev_info ||--o| sensor_info : "NILM 센서 참조 (nilm_sensorNo)"
    dev_info ||--o| sensor_info : "LED 센서 참조 (led_sensorNo)"
    dev_info ||--|| nilm_init_value : "초기값 참조 (dev_no)"
    sensor_info ||--o{ sensor_history_log : "측정 이력 생성"
    sensor_info }|--|| type_info : "센서 타입 (1:NILM, 2:경광등)"
    sensor_info }o--o{ status_info : "상태코드 참조"

전체 테이블 상세 명세서

1. dev_info (설비/기계 마스터 정보)

NILM 장치가 연결된 설비 및 기계들의 기본 정보와, 해당 설비에 매핑된 센서 번호(NILM, LED)를 관리합니다.

컬럼명 데이터 타입 Key NULL 설명 비고
dev_no INT(11) PK NO 설비 고유 번호 Auto Increment
dev_id VARCHAR(15) UNIQUE YES 설비 식별 ID
dev_name VARCHAR(50) UNIQUE YES 설비명
dev_desc VARCHAR(100) YES 설비 상세 설명
dev_posID VARCHAR(100) FK YES 위치 식별 ID pos_info.pos_id 참조
led_sensorNo INT(11) FK YES 매핑된 경광등(LED) 센서 번호 sensor_info.sensor_no 참조
nilm_sensorNo INT(11) FK YES 매핑된 NILM 센서 번호 sensor_info.sensor_no 참조
nilm_chNo INT(11) YES 해당 설비가 연결된 NILM 채널 번호

2. sensor_info (센서 마스터 및 실시간/목표 상태)

NILM 장비의 최신 실시간 계측값 및 경광등의 현재/목표 상태를 관리하는 메인 테이블입니다. LLM 핸드쉐이크를 지원하기 위한 target 필드가 포함되어 있습니다.

컬럼명 데이터 타입 Key NULL 설명 비고
sensor_no INT(11) PK NO 센서 고유 번호 Auto Increment
sensor_id VARCHAR(15) UNIQUE YES 센서 식별 ID
sensor_name VARCHAR(50) YES 센서명
_desc VARCHAR(100) YES 센서 설명
sensor_typeid INT(11) FK NO 센서 타입 1:NILM, 2:경광등 (type_info 참조)
update_time DATETIME YES 마지막 갱신 일시
mqtt_topic VARCHAR(255) YES [NILM] 구독 MQTT 토픽 (추가) 에이전트 동적 매핑용
value_pf FLOAT YES [NILM] 역률 (Power Factor)
value_ch1_current FLOAT YES [NILM] CH1 최신 전류
value_ch1_volt FLOAT YES [NILM] CH1 최신 전압
value_ch1_pwr FLOAT YES [NILM] CH1 최신 전력
value_ch2_current FLOAT YES [NILM] CH2 최신 전류
value_ch2_volt FLOAT YES [NILM] CH2 최신 전압
value_ch2_pwr FLOAT YES [NILM] CH2 최신 전력
value_ch3_current FLOAT YES [NILM] CH3 최신 전류
value_ch3_volt FLOAT YES [NILM] CH3 최신 전압
value_ch3_pwr FLOAT YES [NILM] CH3 최신 전력
value_ch1_statusID INT(11) FK YES [LED] Green LED 현재 상태 status_info 참조 (0:OFF, 1:ON)
value_ch2_statusID INT(11) FK YES [LED] Yellow LED 현재 상태 status_info 참조
value_ch3_statusID INT(11) FK YES [LED] Red LED 현재 상태 status_info 참조
target_ch1_statusID INT(11) FK YES [LED] Green LED 목표 상태 (추가) 백엔드/LLM 제어 지시값
target_ch2_statusID INT(11) FK YES [LED] Yellow LED 목표 상태 (추가) 백엔드/LLM 제어 지시값
target_ch3_statusID INT(11) FK YES [LED] Red LED 목표 상태 (추가) 백엔드/LLM 제어 지시값
last_updated_by VARCHAR(50) YES 마지막 제어 주체 (추가) 예: 'LLM', 'RULE_ENGINE'

3. sensor_history_log (시계열 이력 로그) - [NEW]

sensor_info의 측정값이 지속적으로 갱신될 때마다 그 시점의 데이터를 시계열(Time-series) 이력으로 누적 적재하는 로그 테이블입니다.

컬럼명 데이터 타입 Key NULL 설명 비고
log_no INT(11) PK NO 로그 고유 번호 Auto Increment
sensor_no INT(11) FK NO 측정 대상 센서 고유 번호 sensor_info.sensor_no 참조
log_time DATETIME IDX NO 로그 생성 일시 기본값: CURRENT_TIMESTAMP
value_ch1_current FLOAT YES [NILM] CH1 이력 전류
value_ch1_volt FLOAT YES [NILM] CH1 이력 전압
value_ch1_pwr FLOAT YES [NILM] CH1 이력 전력
value_ch2_current FLOAT YES [NILM] CH2 이력 전류
value_ch2_volt FLOAT YES [NILM] CH2 이력 전압
value_ch2_pwr FLOAT YES [NILM] CH2 이력 전력
value_ch3_current FLOAT YES [NILM] CH3 이력 전류
value_ch3_volt FLOAT YES [NILM] CH3 이력 전압
value_ch3_pwr FLOAT YES [NILM] CH3 이력 전력

4. pos_info (위치 정보 마스터)

기계/설비가 설치된 공장 내 위치 구역 코드를 관리합니다.

컬럼명 데이터 타입 Key NULL 설명 비고
pos_id VARCHAR(15) IDX YES 위치 식별 ID 예: 'POS_01'
pos_name VARCHAR(50) YES 위치명 예: 'A동 1구역'

5. type_info (센서/장비 타입 마스터)

sensor_info에 등록된 센서의 유형(Type)을 정의합니다.

컬럼명 데이터 타입 Key NULL 설명 비고
dev_typeID INT(11) IDX YES 장비(센서) 타입 식별 ID 1: NILM, 2: 경광등
dev_name VARCHAR(50) YES 장비 타입명

6. status_info (상태 코드 마스터)

경광등 상태(ON/OFF 등)와 같은 각종 상태값의 공통 코드를 관리합니다.

컬럼명 데이터 타입 Key NULL 설명 비고
sts_id INT(11) IDX YES 상태 식별 ID 예: 0, 1
sts_name VARCHAR(50) YES 상태명 예: 'OFF', 'ON'
sts_level INT(11) YES 상태 레벨

7. nilm_init_value (NILM 초기/기준 설정값)

특정 설비(dev_no)에 대한 NILM 채널별 초기(기준) 전류/전압 측정값을 보관합니다.

컬럼명 데이터 타입 Key NULL 설명 비고
dev_no INT(11) IDX YES 설비 고유 번호 dev_info.dev_no 참조
ch1_current FLOAT YES CH1 초기 전류값
ch1_volt FLOAT YES CH1 초기 전압값
ch2_current FLOAT YES CH2 초기 전류값
ch2_volt FLOAT YES CH2 초기 전압값
ch3_current FLOAT YES CH3 초기 전류값
ch3_volt FLOAT YES CH3 초기 전압값