# 공통 / 게시판 / 감사 도메인 > **모델 수**: Commons 10 + Boards 5 + Audit 2 = 17 > **핵심**: 범용 분류, 파일 관리, 게시판 시스템, 감사 로그 --- ## 주요 테이블 ### 공통 (Commons) | 테이블 | 모델 | 역할 | |--------|------|------| | categories | Category | 범용 계층 분류 (parent_id, self-reference) | | category_fields | CategoryField | 카테고리 동적 필드 (EAV) | | category_templates | CategoryTemplate | 카테고리 필드 스냅샷 (버전) | | category_logs | CategoryLog | 카테고리 변경 로그 | | classifications | Classification | 분류 체계 | | files | File | 파일 첨부 (다형: morphMany) | | menus | Menu | 메뉴 체계 | | tags | Tag | 태그 시스템 | | holidays | Holiday | 공휴일 | | common_codes | CommonCode | 공통 코드 | ### 게시판 (Boards) | 테이블 | 모델 | 역할 | |--------|------|------| | boards | Board | 게시판 정의 | | posts | Post | 게시글 | | board_settings | BoardSetting | 게시판 동적 필드 정의 | | post_custom_field_values | PostCustomFieldValue | 게시글 커스텀 필드 값 (EAV) | | board_comments | BoardComment | 댓글 | ### 감사 (Audit) | 테이블 | 모델 | 역할 | |--------|------|------| | audit_logs | AuditLog | 변경 감사 로그 (불변) | | trigger_audit_logs | TriggerAuditLog | DB 트리거 감사 로그 | --- ## 관계 구조 ``` Category (계층 분류) ├─ belongsTo Category (parent_id → self) ├─ hasMany Category (children) ├─ hasMany CategoryField (EAV 동적 필드) ├─ hasMany CategoryTemplate (필드 버전 스냅샷) ├─ hasMany Product └─ belongsToMany File via tags Board (게시판) ├─ hasMany Post │ ├─ hasMany PostCustomFieldValue (EAV) │ └─ hasMany BoardComment └─ hasMany BoardSetting (동적 필드 정의) File (범용 첨부) └─ morphTo fileable (어떤 모델에든 첨부 가능) ``` --- ## EAV 패턴 게시판과 카테고리 모두 **EAV(Entity-Attribute-Value)** 패턴 사용: ``` Board → BoardSetting (필드 정의: field_name, field_type) Post → PostCustomFieldValue (필드 값: board_setting_id, value) Category → CategoryField (필드 정의: field_name, field_type) ``` --- ## 특이사항 - `File`은 다형(morphMany) 관계 — 모든 모델에서 파일 첨부 가능 - `AuditLog`는 불변 (timestamps 없음, SoftDeletes 없음) - 감사 로그 보존 정책: 13개월 - 게시판 시스템: EAV 패턴으로 동적 필드 지원 (노션 스타일 전환 계획 중)