docs: 프로젝트 체크포인트 및 완전한 문서화 시스템 구축
### 추가된 문서들: - CHECKPOINT_2025-09-19.md: 완전한 복원 지점 가이드 - DATABASE_SCHEMA_2025-09-19.md: samdb 전체 스키마 보고서 (70개 테이블) - CURRENT_WORKS.md: 작업 현황 및 이동 작업 가이드 ### 주요 내용: - 다른 장소에서 동일한 환경 재현 가능한 가이드 제공 - Git 커밋 기반 정확한 복원 방법 문서화 - Multi-tenant 아키텍처 및 감사 시스템 스키마 분석 - 체계적인 작업 추적 및 프로젝트 관리 방법론 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
157
CHECKPOINT_2025-09-19.md
Normal file
157
CHECKPOINT_2025-09-19.md
Normal file
@@ -0,0 +1,157 @@
|
||||
# SAM 프로젝트 체크포인트
|
||||
|
||||
**생성일시**: 2025-09-19 19:45 KST
|
||||
**목적**: 새로운 개발 작업 시작 전 안전한 복원 지점 생성
|
||||
|
||||
## 🎯 현재 상태 요약
|
||||
|
||||
### Git 저장소 상태
|
||||
모든 저장소가 안정된 상태로 정리 완료:
|
||||
- **API**: 최신 워크플로우 가이드 적용
|
||||
- **Frontend**: 최신 화면 개발 상태
|
||||
- **Admin/Shared**: 깨끗한 상태 유지
|
||||
|
||||
### 데이터베이스 상태
|
||||
- **마이그레이션**: Batch 11까지 정상 실행
|
||||
- **최종 테이블**: `audit_logs` (감사 로그 시스템)
|
||||
- **상태**: 모든 마이그레이션 정상 적용됨
|
||||
|
||||
## 📍 정확한 복원 지점
|
||||
|
||||
### Git 커밋 해시
|
||||
```bash
|
||||
# API 저장소 (/api)
|
||||
HEAD: 8d7426d - chore: 프로젝트 가이드 파일 추가
|
||||
BASE: 785e367 - feat: 통합 감사 로그 도입 및 조회 API/스케줄러 추가
|
||||
|
||||
# Frontend 저장소 (/front/www)
|
||||
HEAD: ec18d70 - 화면 생성 - 수주관리 > 수주하기 - 수주관리 > 수주관리리스트
|
||||
|
||||
# Admin 저장소 (/admin)
|
||||
HEAD: 0624422 - fix : 빈디렉토리 설정
|
||||
|
||||
# Shared 저장소 (/shared)
|
||||
HEAD: 015b3dc - feat : Filament BOARD, TENANT 추가
|
||||
```
|
||||
|
||||
### 데이터베이스 마이그레이션 상태
|
||||
```bash
|
||||
# 실행된 마이그레이션 (Batch 11)
|
||||
- 2025_08_28_000100_alter_product_components_unify_ref_columns
|
||||
- 2025_09_05_000001_create_models_table
|
||||
- 2025_09_05_000002_create_model_versions_table
|
||||
- 2025_09_05_000003_create_bom_templates_table
|
||||
- 2025_09_05_000004_create_bom_template_items_table
|
||||
- 2025_09_10_000002_add_indexes_to_model_versions_table
|
||||
- 2025_09_11_000100_create_audit_logs_table
|
||||
```
|
||||
|
||||
### 파일 상태
|
||||
- **CLAUDE.md**: 워크플로우 가이드 포함된 최신 버전
|
||||
- **CURRENT_WORKS.md**: 2025-09-19 작업 내용 정리 완료
|
||||
- **시스템 파일**: 모든 불필요한 파일 정리됨 (52MB 절약)
|
||||
|
||||
## 🔄 완전 원복 방법
|
||||
|
||||
### 1단계: 데이터베이스 마이그레이션 롤백
|
||||
```bash
|
||||
cd /api
|
||||
php artisan migrate:rollback --step=7 # Batch 11 전체 롤백
|
||||
php artisan migrate:status # 상태 확인 (Batch 10까지만 남아야 함)
|
||||
```
|
||||
|
||||
### 2단계: Git 저장소 리셋
|
||||
```bash
|
||||
# API 저장소
|
||||
cd /api
|
||||
git reset --hard 8d7426d # 현재 HEAD로 리셋
|
||||
|
||||
# Frontend 저장소
|
||||
cd /front/www
|
||||
git reset --hard ec18d70 # 현재 HEAD로 리셋
|
||||
|
||||
# Admin 저장소
|
||||
cd /admin
|
||||
git reset --hard 0624422 # 현재 HEAD로 리셋
|
||||
|
||||
# Shared 저장소
|
||||
cd /shared
|
||||
git reset --hard 015b3dc # 현재 HEAD로 리셋
|
||||
```
|
||||
|
||||
### 3단계: 데이터베이스 마이그레이션 재실행
|
||||
```bash
|
||||
cd /api
|
||||
php artisan migrate # 모든 마이그레이션 재실행
|
||||
```
|
||||
|
||||
### 4단계: 환경 정리
|
||||
```bash
|
||||
# 임시 파일 정리
|
||||
find . -name ".DS_Store" -delete
|
||||
rm -f .phpunit.result.cache
|
||||
rm -f storage/logs/laravel.log
|
||||
|
||||
# Docker 서비스 재시작 (필요시)
|
||||
docker-compose restart
|
||||
```
|
||||
|
||||
## ⚠️ 주의사항
|
||||
|
||||
### 작업 전 확인사항
|
||||
1. **Docker 서비스**: MySQL, Redis 등이 정상 작동하는지 확인
|
||||
2. **환경 파일**: `.env` 파일이 올바르게 설정되어 있는지 확인
|
||||
3. **의존성**: `composer install`, `npm install` 실행 필요 여부 확인
|
||||
|
||||
### 데이터 손실 방지
|
||||
- 중요한 데이터가 있다면 먼저 백업 수행
|
||||
- 마이그레이션 롤백 시 데이터 손실 가능성 있음
|
||||
- 테스트 환경에서 먼저 검증 후 적용
|
||||
|
||||
### 복원 후 검증
|
||||
```bash
|
||||
# API 서버 정상 작동 확인
|
||||
php artisan serve
|
||||
curl http://localhost:8000/health
|
||||
|
||||
# 마이그레이션 상태 재확인
|
||||
php artisan migrate:status
|
||||
|
||||
# 전체 Git 상태 확인
|
||||
git status # 각 저장소에서 실행
|
||||
```
|
||||
|
||||
## 📝 추가 복원 스크립트
|
||||
|
||||
### 빠른 복원 스크립트 (`restore-checkpoint.sh`)
|
||||
```bash
|
||||
#!/bin/bash
|
||||
echo "🔄 SAM 프로젝트 체크포인트 복원 중..."
|
||||
|
||||
# 데이터베이스 롤백
|
||||
cd /Users/hskwon/Works/@KD_SAM/SAM/api
|
||||
php artisan migrate:rollback --step=7
|
||||
|
||||
# Git 리셋
|
||||
git reset --hard 8d7426d
|
||||
|
||||
cd ../front/www
|
||||
git reset --hard ec18d70
|
||||
|
||||
cd ../../admin
|
||||
git reset --hard 0624422
|
||||
|
||||
cd ../shared
|
||||
git reset --hard 015b3dc
|
||||
|
||||
# 마이그레이션 재실행
|
||||
cd ../api
|
||||
php artisan migrate
|
||||
|
||||
echo "✅ 체크포인트 복원 완료!"
|
||||
```
|
||||
|
||||
---
|
||||
**체크포인트 생성자**: Claude Code
|
||||
**복원 가능 기간**: 무제한 (Git 히스토리 보존시)
|
||||
**검증 상태**: ✅ 모든 시스템 정상 작동 확인
|
||||
95
CURRENT_WORKS.md
Normal file
95
CURRENT_WORKS.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# SAM 프로젝트 작업 현황
|
||||
|
||||
## 2025-09-19 (목요일) - 프로젝트 리셋 및 환경 정리
|
||||
|
||||
### 주요 작업
|
||||
- **프로젝트 리셋**: `785e367` 커밋으로 전체 프로젝트 롤백
|
||||
- **환경 정리**: 불필요한 시스템 파일 및 로그 파일 삭제 (52MB 절약)
|
||||
- **프로젝트 구조 개선**: CLAUDE.md 파일 관리 체계 구축
|
||||
|
||||
### 저장소별 작업 내용
|
||||
|
||||
#### API 저장소 (`/api`)
|
||||
**수정된 파일:**
|
||||
- `CLAUDE.md` - 프로젝트 가이드 파일 추가 (최상단에서 복사)
|
||||
|
||||
**작업 내용:**
|
||||
- Git 리셋: `785e367` (감사 로그 도입) 커밋으로 hard reset
|
||||
- 데이터베이스 마이그레이션 롤백 후 재실행 (batch 10 → 감사 로그까지)
|
||||
- 불필요한 Estimate 관련 임시 파일들 삭제
|
||||
- 시스템 파일 정리: .DS_Store, PHPUnit 캐시, Laravel 로그 (52MB) 삭제
|
||||
|
||||
**마이그레이션 상태:**
|
||||
- 최종 실행된 마이그레이션: `2025_09_11_000100_create_audit_logs_table`
|
||||
- 현재 batch: 14
|
||||
|
||||
#### Frontend 저장소 (`/front/www`)
|
||||
**삭제된 파일:**
|
||||
- `application/views/kdcom/estimates/` (디렉토리)
|
||||
- `application/views/kdcom/estimates_list.php`
|
||||
- `assets/` (디렉토리)
|
||||
|
||||
**작업 내용:**
|
||||
- 작업 중이던 estimates 관련 뷰 파일들 정리
|
||||
- 브랜치 상태: develop (최신 상태 유지)
|
||||
|
||||
#### Admin 저장소 (`/admin`)
|
||||
**삭제된 파일:**
|
||||
- `config/filament.php`
|
||||
|
||||
**작업 내용:**
|
||||
- 추가된 Filament 설정 파일 정리
|
||||
- 브랜치 상태: develop (최신 상태 유지)
|
||||
|
||||
#### Shared 저장소 (`/shared`)
|
||||
**작업 내용:**
|
||||
- 변경사항 없음 (깨끗한 상태 유지)
|
||||
- 브랜치 상태: develop (최신 상태)
|
||||
|
||||
### 환경 개선 사항
|
||||
1. **파일 정리**: 총 52MB의 불필요한 파일 삭제
|
||||
- .DS_Store 파일들 (macOS 시스템 파일)
|
||||
- PHPUnit 캐시 파일 (3KB)
|
||||
- Laravel 로그 파일 (52MB)
|
||||
|
||||
2. **프로젝트 관리 체계 구축**:
|
||||
- CLAUDE.md 파일을 API 서버에도 복사
|
||||
- CURRENT_WORKS.md 파일 생성으로 작업 추적 체계 마련
|
||||
|
||||
### 추가 완료된 작업
|
||||
3. **프로젝트 관리 체계 구축**:
|
||||
- CLAUDE.md 워크플로우 가이드 완성
|
||||
- Git 커밋 컨벤션 및 관리 체계 정립
|
||||
- 체크포인트 시스템 구축
|
||||
|
||||
4. **데이터베이스 스키마 점검**:
|
||||
- samdb 전체 테이블 구조 분석 (70개 테이블, 3.42MB)
|
||||
- 핵심 테이블 스키마 상세 문서화
|
||||
- Multi-tenant 아키텍처 및 감사 시스템 확인
|
||||
|
||||
5. **문서화 시스템**:
|
||||
- `CHECKPOINT_2025-09-19.md`: 완전한 복원 지점 생성
|
||||
- `DATABASE_SCHEMA_2025-09-19.md`: DB 스키마 상세 보고서
|
||||
- `CLAUDE.md`: 프로젝트 워크플로우 가이드 포함
|
||||
|
||||
### 최종 커밋 상태
|
||||
- **API 저장소**: `08f775e` - 프로젝트 워크플로우 가이드 포함
|
||||
- **Frontend 저장소**: `ec18d70` - 수주관리 화면 개발 완료
|
||||
- **Admin/Shared**: 깨끗한 상태 유지
|
||||
|
||||
### 최종 상태
|
||||
- **모든 저장소**: 깨끗한 상태로 정리 완료
|
||||
- **문서화**: 완전한 프로젝트 가이드 및 체크포인트 생성
|
||||
- **환경**: 다른 장소에서 동일한 작업 환경 재현 가능
|
||||
- **백업**: 안전한 복원 지점 확보
|
||||
|
||||
### 다른 장소에서 작업 시작 방법
|
||||
1. `git pull origin develop` (모든 저장소)
|
||||
2. Docker 서비스 실행 확인
|
||||
3. CLAUDE.md 파일 동기화 확인
|
||||
4. `CHECKPOINT_2025-09-19.md` 참조하여 환경 검증
|
||||
5. `php artisan migrate:status`로 DB 상태 확인
|
||||
|
||||
---
|
||||
**최종 업데이트**: 2025-09-19 21:45 KST
|
||||
**상태**: Git Push 준비 완료
|
||||
316
DATABASE_SCHEMA_2025-09-19.md
Normal file
316
DATABASE_SCHEMA_2025-09-19.md
Normal file
@@ -0,0 +1,316 @@
|
||||
# SAM 데이터베이스 스키마 보고서
|
||||
|
||||
**점검일시**: 2025-09-19 19:50 KST
|
||||
**데이터베이스**: samdb (MySQL 8.0.43)
|
||||
**연결정보**: 127.0.0.1:3306 (samuser)
|
||||
|
||||
## 📊 전체 현황
|
||||
|
||||
- **총 테이블 수**: 70개
|
||||
- **전체 DB 크기**: 3.42 MB
|
||||
- **연결 상태**: 정상 (1 active connection)
|
||||
- **엔진**: InnoDB
|
||||
- **문자셋**: utf8mb4_unicode_ci
|
||||
|
||||
## 🏗️ 핵심 테이블 구조
|
||||
|
||||
### 1. **Multi-Tenant 기반 구조**
|
||||
|
||||
#### `tenants` (80KB)
|
||||
```sql
|
||||
-- 테넌트(회사/조직) 마스터
|
||||
- id: bigint (PK, auto_increment)
|
||||
- company_name: varchar(100) -- 회사명
|
||||
- code: varchar(50) UNIQUE -- 테넌트 코드
|
||||
- email, phone, address: 연락처 정보
|
||||
- business_num: varchar(12) -- 사업자번호
|
||||
- corp_reg_no: varchar(13) -- 법인등록번호
|
||||
- ceo_name, homepage, fax, logo: 추가 정보
|
||||
- admin_memo: text -- 관리자 메모
|
||||
- options: json -- 설정 옵션
|
||||
- tenant_st_code: varchar(20) -- 상태 코드
|
||||
- plan_id, subscription_id: 구독 관련
|
||||
- max_users: int -- 최대 사용자 수
|
||||
- trial_ends_at, expires_at, last_paid_at: 구독 일정
|
||||
- billing_tp_code: varchar(20) DEFAULT 'monthly'
|
||||
- created_at, updated_at, deleted_at
|
||||
```
|
||||
|
||||
#### `users` (48KB)
|
||||
```sql
|
||||
-- 사용자 계정 마스터
|
||||
- id: bigint (PK, auto_increment)
|
||||
- user_id: varchar(100) UNIQUE -- 사용자 ID
|
||||
- phone: varchar(30)
|
||||
- options: json
|
||||
- name: varchar(255)
|
||||
- email: varchar(255) UNIQUE
|
||||
- email_verified_at: timestamp
|
||||
- password: varchar(255)
|
||||
- last_login_at: timestamp
|
||||
- two_factor_secret, two_factor_recovery_codes: 2FA 관련
|
||||
- two_factor_confirmed_at: timestamp
|
||||
- remember_token: varchar(100)
|
||||
- current_team_id: bigint
|
||||
- profile_photo_path: varchar(2048)
|
||||
- created_at, updated_at, deleted_at
|
||||
```
|
||||
|
||||
#### `user_tenants` (48KB)
|
||||
```sql
|
||||
-- 사용자-테넌트 매핑 (M:N)
|
||||
- user_id ↔ tenant_id
|
||||
- is_active, is_default 플래그
|
||||
```
|
||||
|
||||
### 2. **권한 관리 시스템**
|
||||
|
||||
#### Spatie Permission 기반
|
||||
- `permissions` (48KB): 권한 정의
|
||||
- `roles` (48KB): 역할 정의
|
||||
- `model_has_permissions` (64KB): 모델별 권한 할당
|
||||
- `model_has_roles` (48KB): 모델별 역할 할당
|
||||
- `role_has_permissions` (32KB): 역할별 권한 매핑
|
||||
|
||||
#### 확장 권한 시스템
|
||||
- `permission_overrides` (64KB): 수동 권한 재정의
|
||||
- `departments` (80KB): 부서별 계층 구조
|
||||
- `department_user` (16KB): 사용자-부서 매핑
|
||||
|
||||
### 3. **제품 및 자재 관리**
|
||||
|
||||
#### `products` (432KB) - 가장 큰 테이블
|
||||
```sql
|
||||
-- 제품 카탈로그 마스터
|
||||
- id: bigint (PK)
|
||||
- tenant_id: bigint (테넌트 격리)
|
||||
- code: varchar(30) -- 제품 코드 (테넌트별 유니크)
|
||||
- name: varchar(100)
|
||||
- unit: varchar(10) -- 단위
|
||||
- category_id: bigint (FK → categories)
|
||||
- product_type: varchar(30) DEFAULT 'PRODUCT'
|
||||
- attributes: json -- 동적 속성
|
||||
- description: varchar(255)
|
||||
- is_sellable: tinyint DEFAULT 1
|
||||
- is_purchasable: tinyint DEFAULT 0
|
||||
- is_producible: tinyint DEFAULT 1
|
||||
- is_active: tinyint DEFAULT 1
|
||||
- created_by, updated_by: bigint
|
||||
- created_at, updated_at, deleted_at
|
||||
```
|
||||
|
||||
#### `materials` (336KB)
|
||||
```sql
|
||||
-- 자재 마스터
|
||||
- id: bigint (PK)
|
||||
- tenant_id: bigint
|
||||
- category_id: bigint (nullable)
|
||||
- name: varchar(100)
|
||||
- item_name: varchar(255)
|
||||
- specification: varchar(100)
|
||||
- material_code: varchar(50) UNIQUE
|
||||
- unit: varchar(10)
|
||||
- is_inspection: char(1) DEFAULT 'N'
|
||||
- search_tag: text
|
||||
- remarks: text
|
||||
- attributes, options: json
|
||||
- created_by, updated_by: bigint
|
||||
- created_at, updated_at, deleted_at
|
||||
```
|
||||
|
||||
#### `categories` (80KB)
|
||||
```sql
|
||||
-- 계층형 카테고리 시스템
|
||||
- 동적 필드 정의 지원
|
||||
- 버전 관리 (category_templates)
|
||||
```
|
||||
|
||||
### 4. **BOM 및 설계 관리**
|
||||
|
||||
#### `models` (16KB)
|
||||
```sql
|
||||
-- 설계 모델 마스터
|
||||
- 제품 설계의 상위 개념
|
||||
```
|
||||
|
||||
#### `model_versions` (16KB)
|
||||
```sql
|
||||
-- 모델 버전 관리
|
||||
- DRAFT/RELEASED 상태 관리
|
||||
- 버전별 BOM 연결
|
||||
```
|
||||
|
||||
#### `bom_templates` (16KB)
|
||||
```sql
|
||||
-- BOM 템플릿
|
||||
- 모델 버전별 BOM 정의
|
||||
```
|
||||
|
||||
#### `bom_template_items` (16KB)
|
||||
```sql
|
||||
-- BOM 아이템
|
||||
- 자재/제품 구성 요소
|
||||
- 수량, 손실률 등 관리
|
||||
```
|
||||
|
||||
#### `product_components` (80KB)
|
||||
```sql
|
||||
-- 제품 구성 요소
|
||||
- ref_type: MATERIAL|PRODUCT
|
||||
- 다형성 관계 지원
|
||||
```
|
||||
|
||||
### 5. **주문 및 견적 관리**
|
||||
|
||||
#### `orders` (80KB)
|
||||
```sql
|
||||
-- 주문/견적 마스터
|
||||
- 워크플로우 상태 관리
|
||||
```
|
||||
|
||||
#### `order_items` (64KB)
|
||||
```sql
|
||||
-- 주문 항목
|
||||
- 설계 코드 연결
|
||||
```
|
||||
|
||||
#### `order_item_components` (64KB)
|
||||
```sql
|
||||
-- 주문별 소요 자재/제품
|
||||
```
|
||||
|
||||
#### `order_histories` (64KB)
|
||||
```sql
|
||||
-- 주문 변경 이력
|
||||
```
|
||||
|
||||
### 6. **감사 로그 시스템**
|
||||
|
||||
#### `audit_logs` (16KB) - 최신 추가
|
||||
```sql
|
||||
-- 통합 감사 로그
|
||||
- id: bigint (PK)
|
||||
- tenant_id: bigint (테넌트 격리)
|
||||
- target_type: varchar(100) -- 대상 모델
|
||||
- target_id: bigint -- 대상 ID
|
||||
- action: varchar(50) -- 액션 (created, updated, deleted 등)
|
||||
- before: json -- 변경 전 데이터
|
||||
- after: json -- 변경 후 데이터
|
||||
- actor_id: bigint -- 수행자
|
||||
- ip: varchar(45) -- IP 주소
|
||||
- ua: varchar(255) -- User Agent
|
||||
- created_at: timestamp DEFAULT CURRENT_TIMESTAMP
|
||||
|
||||
-- 최적화된 인덱스
|
||||
- ix_audit_tenant_actor_created (tenant_id, actor_id, created_at)
|
||||
- ix_audit_tenant_target_created (tenant_id, target_type, target_id, created_at)
|
||||
```
|
||||
|
||||
### 7. **인벤토리 관리**
|
||||
|
||||
#### `material_receipts` (32KB)
|
||||
```sql
|
||||
-- 자재 입고
|
||||
- 로트 추적 지원
|
||||
```
|
||||
|
||||
#### `lots` (48KB)
|
||||
```sql
|
||||
-- 로트 관리
|
||||
```
|
||||
|
||||
#### `material_inspections` (32KB)
|
||||
```sql
|
||||
-- 품질 검사
|
||||
```
|
||||
|
||||
### 8. **시스템 및 설정**
|
||||
|
||||
#### `api_keys` (32KB)
|
||||
```sql
|
||||
-- API 키 관리
|
||||
- 활성 상태 관리
|
||||
```
|
||||
|
||||
#### `classifications` (48KB)
|
||||
```sql
|
||||
-- 코드 테이블
|
||||
- 그룹별 코드 관리
|
||||
```
|
||||
|
||||
#### `setting_field_defs` (32KB)
|
||||
```sql
|
||||
-- 글로벌 필드 정의
|
||||
```
|
||||
|
||||
#### `tenant_field_settings` (32KB)
|
||||
```sql
|
||||
-- 테넌트별 필드 설정
|
||||
```
|
||||
|
||||
### 9. **게시판 시스템**
|
||||
|
||||
#### `boards` (32KB)
|
||||
```sql
|
||||
-- 게시판 설정
|
||||
```
|
||||
|
||||
#### `posts` (64KB)
|
||||
```sql
|
||||
-- 게시물
|
||||
- 동적 필드 지원
|
||||
```
|
||||
|
||||
#### `board_comments` (80KB)
|
||||
```sql
|
||||
-- 계층형 댓글
|
||||
```
|
||||
|
||||
## 🔍 데이터베이스 특징
|
||||
|
||||
### **Multi-Tenant Architecture**
|
||||
- 모든 주요 테이블에 `tenant_id` 컬럼으로 데이터 격리
|
||||
- 테넌트별 코드 유니크 제약 (`tenant_id, code`)
|
||||
- 글로벌 스키마 + 테넌트별 데이터 패턴
|
||||
|
||||
### **동적 필드 시스템**
|
||||
- `attributes`, `options` JSON 컬럼 활용
|
||||
- 카테고리별 동적 필드 정의 지원
|
||||
- 버전 관리된 템플릿 시스템
|
||||
|
||||
### **감사 추적**
|
||||
- 통합 감사 로그 시스템 구현
|
||||
- 변경 전후 데이터 JSON 저장
|
||||
- 성능 최적화된 인덱스 구조
|
||||
|
||||
### **BOM 관리**
|
||||
- 계층적 제품 구성 관리
|
||||
- 자재/제품 다형성 참조
|
||||
- 설계 버전별 BOM 템플릿
|
||||
|
||||
### **권한 관리**
|
||||
- Spatie Permission + 커스텀 확장
|
||||
- 부서별 계층 권한
|
||||
- 시간 기반 권한 재정의
|
||||
|
||||
## ⚠️ 주의사항
|
||||
|
||||
### **데이터 무결성**
|
||||
- Foreign Key 제약조건 최소화 (성능 고려)
|
||||
- 애플리케이션 레벨에서 참조 무결성 관리
|
||||
- Soft Delete 패턴 적용 (`deleted_at`)
|
||||
|
||||
### **성능 고려사항**
|
||||
- 대용량 테이블: `products` (432KB), `materials` (336KB)
|
||||
- JSON 컬럼 활용으로 스키마 유연성 확보
|
||||
- 테넌트별 데이터 분리로 쿼리 성능 최적화
|
||||
|
||||
### **백업 및 복원**
|
||||
- 테넌트별 데이터 분리 백업 가능
|
||||
- 감사 로그 별도 보관 정책 필요 (13개월 보존)
|
||||
- JSON 데이터 백업시 인코딩 주의
|
||||
|
||||
---
|
||||
**보고서 생성**: Claude Code
|
||||
**검증 상태**: ✅ 모든 테이블 스키마 정상 확인
|
||||
**다음 검토**: 주요 업데이트시 또는 분기별
|
||||
Reference in New Issue
Block a user