docs: team_document 테이블 추가

- RAG 파일 시스템용 team_document 테이블 스키마 추가
- 팀별 문서 저장/관리 구조
- ChromaDB 연동을 위한 chunk_count, text_content 컬럼
- 파일 중복 방지를 위한 file_hash 인덱스

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
happybell80 2025-09-15 22:08:55 +09:00
parent ad09346aee
commit 1a34f49680

View File

@ -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 |
---