Skip to main content

테이블 정의 (tables)

테이블 정의

{
"refId": "hcm_items",
"tableName": "hcm_items",
"displayName": "품목마스터",
"connectUsers": true,
"connectDepartments": false,
"isHierarchical": false,
"auditEnabled": true,
"columns": [...]
}

테이블 필드 명세

필드타입필수설명
refIdstring필수솔루션 내 고유 참조 ID. tableName과 동일하게 설정
tableNamestring필수실제 DB 테이블명. {접두사}_{기능명} 형식
displayNamestring필수한글 표시명
columnsarray필수컬럼 정의 배열
connectUsersboolean선택truecreated_by, updated_by 자동 추가
connectDepartmentsboolean선택truedepartment_id 자동 추가
isHierarchicalboolean선택trueparent_id, sort_order, level 자동 추가 (트리 구조)
auditEnabledboolean선택감사 로그 추적 (기본: true)
enableCsvImportboolean선택CSV 업로드 허용
enableCsvExportboolean선택CSV 다운로드 허용
enablePrintboolean선택인쇄 기능 활성화

자동 생성 컬럼 (명시하지 않아도 자동 추가)

조건자동 추가 컬럼
모든 테이블id (UUID, PK)
connectUsers: truecreated_by (UUID, SYSTEM_REF→users), updated_by (UUID, SYSTEM_REF→users)
connectDepartments: truedepartment_id (UUID, SYSTEM_REF→departments)
isHierarchical: trueparent_id (UUID), sort_order (INT), level (INT)
auditEnabled: truecreated_at (TIMESTAMP), updated_at (TIMESTAMP)

규칙

  • refIdtableName반드시 동일해야 함
  • 테이블명은 {고객접두사}_{기능명} 형식 (예: hcm_items, djn_work_orders)
  • 고객 간 접두사 중복 금지 — 각 고객별 고유 접두사 사용
  • id 컬럼을 columns에 직접 정의하지 않음 (시스템 자동 생성)

audit_trail (감사 추적 테이블 패턴)

audit_trailCascadeUpdateService에 의해 자동 관리되는 시스템 테이블입니다. 연쇄 갱신이 발생할 때마다 변경 이력이 자동으로 기록됩니다.

스키마

컬럼타입설명
idUUIDPK (자동 생성)
entity_typeVARCHAR변경된 대상 테이블명 (예: work_orders)
entity_idUUID변경된 대상 행의 ID
field_nameVARCHAR변경된 컬럼명 (예: good_qty)
old_valueTEXT변경 전 값
new_valueTEXT변경 후 값
changed_byUUID변경을 수행한 사용자 ID
changed_atTIMESTAMP변경 시각 (서버 시간)
source_entity_typeVARCHAR변경을 유발한 원본 테이블명 (예: production_results)
source_entity_idUUID변경을 유발한 원본 행의 ID

특징

  • 자동 관리: CascadeUpdateService가 연쇄 갱신 시 자동으로 INSERT — 수동 시드 데이터 불필요
  • 런타임 전용: 프리셋 JSON의 seedData에 audit_trail 데이터를 포함하지 않음
  • 추적 가능성: source_entity_type + source_entity_id로 변경의 원인을 역추적 가능
  • DB 마이그레이션: database/migrations/218_audit_trail.sql에서 테이블 생성

프리셋 JSON과의 관계

audit_trail 테이블은 프리셋 JSON에서 정의하지 않습니다. 시스템 마이그레이션에 의해 자동 생성되며, 솔루션 템플릿의 테이블 정의(tables 배열)에 포함할 필요가 없습니다.

프리셋 JSON 테이블 정의 (tables)
└─ 사용자 정의 테이블만 포함
├─ work_orders
├─ production_results
└─ sales_orders

시스템 테이블 (마이그레이션으로 자동 생성)
└─ audit_trail ← CascadeUpdateService가 자동 INSERT

다음: 컬럼 정의 (기본) | 참조: 검증 체크리스트