diff --git a/300_architecture/database/tables.md b/300_architecture/database/tables.md index 2818bf4..7696178 100644 --- a/300_architecture/database/tables.md +++ b/300_architecture/database/tables.md @@ -1,7 +1,7 @@ # PostgreSQL 테이블 구조 ## 작성일: 2025-08-20 -## 최종 수정일: 2025-09-11 +## 최종 수정일: 2025-09-15 ## 데이터베이스: main_db --- @@ -208,6 +208,32 @@ | created_at | TIMESTAMPTZ | YES | CURRENT_TIMESTAMP | 생성 시각 | | updated_at | TIMESTAMPTZ | YES | CURRENT_TIMESTAMP | 수정 시각 | +### team_document +- **용도**: 팀 문서 RAG 시스템 +- **Primary Key**: id (UUID) +- **레코드**: 0개 +- **생성일**: 2025-09-15 + +| 컬럼명 | 타입 | NULL | 기본값 | 설명 | +|--------|------|------|--------|------| +| id | UUID | NO | gen_random_uuid() | 문서 ID | +| team_id | UUID | NO | | 팀 ID (FK → team) | +| uploaded_by | UUID | YES | | 업로드 사용자 (FK → user) | +| filename | VARCHAR(255) | NO | | 파일명 | +| file_hash | VARCHAR(64) | NO | | SHA256 해시 | +| file_size | BIGINT | YES | | 파일 크기 (bytes) | +| mime_type | VARCHAR(100) | YES | | MIME 타입 | +| storage_path | TEXT | NO | | 저장 경로 (/mnt/hdd/uploads/{team_id}/) | +| text_content | TEXT | YES | | 추출된 텍스트 | +| chunk_count | INTEGER | YES | 0 | ChromaDB 청크 수 | +| processing_status | VARCHAR(20) | YES | 'pending' | 처리 상태 (pending/completed/failed) | +| metadata | JSONB | YES | '{}' | 메타데이터 (tags, summary 등) | +| created_at | TIMESTAMPTZ | YES | CURRENT_TIMESTAMP | 생성 시각 | +| updated_at | TIMESTAMPTZ | YES | CURRENT_TIMESTAMP | 수정 시각 | + +**인덱스**: +- `idx_team_doc_hash`: UNIQUE (team_id, file_hash) - 팀별 파일 중복 방지 + --- ## 6. 기타 정보 @@ -220,7 +246,6 @@ ### 외래키 관계 - | 테이블 | 컬럼 | 참조 테이블 | 참조 컬럼 | |--------|------|------------|----------| | team | company_id | company | id | @@ -233,6 +258,8 @@ | gmail_token | user_id | user | id | | news | user_id | user | id | | user_preference | user_id | user | id | +| team_document | team_id | team | id | +| team_document | uploaded_by | user | id | ---