From ccc4d13a907fd041036954d6045c236f4fd5199a Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Tue, 9 Dec 2025 16:43:51 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EC=9D=BC=EA=B8=B0=20=EC=8B=9C=EC=8A=A4?= =?UTF-8?q?=ED=85=9C=20=ED=85=8C=EC=9D=B4=EB=B8=94=20=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - robeing_diary 테이블 스키마 추가 - activity_log 테이블 스키마 추가 - 인덱스 및 제약조건 명시 --- book/300_architecture/database/tables.md | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/book/300_architecture/database/tables.md b/book/300_architecture/database/tables.md index f00eb0b..4644e9f 100644 --- a/book/300_architecture/database/tables.md +++ b/book/300_architecture/database/tables.md @@ -222,6 +222,46 @@ SemanticIntentClassifier는 위 테이블에서 활성화된 의도를 불러오 **인덱스**: - `rb_news_pkey`: PRIMARY KEY (id) + +### robeing_diary +- **용도**: 로빙 일기(성장 일지) 저장 +- **Primary Key**: id (INTEGER) + +| 컬럼명 | 타입 | NULL | 기본값 | 설명 | +|--------|------|------|--------|------| +| id | INTEGER | NO | | PK, SERIAL | +| date | DATE | NO | | 일기 날짜 | +| robeing_id | VARCHAR(50) | NO | | 로빙 식별자 | +| summary | TEXT | YES | | 일기 요약 | +| dominant_emotion | VARCHAR(50) | YES | | 지배적 감정 | +| stats | JSONB | YES | '{}' | 통계 데이터 | +| full_content | TEXT | NO | | 전체 일기 내용 (마크다운) | +| created_at | TIMESTAMPTZ | YES | NOW() | 생성 시간 | + +**인덱스**: +- `idx_robeing_diary_date`: (date DESC) +- `idx_robeing_diary_robeing`: (robeing_id) +- UNIQUE: (date, robeing_id) + +### activity_log +- **용도**: 로빙 활동 로그 (스킬 실행, 스케줄러 작업 등) +- **Primary Key**: id (INTEGER) + +| 컬럼명 | 타입 | NULL | 기본값 | 설명 | +|--------|------|------|--------|------| +| id | INTEGER | NO | | PK, SERIAL | +| robeing_id | VARCHAR(50) | NO | | 로빙 식별자 | +| activity_type | VARCHAR(50) | NO | | 'skill', 'scheduler', 'internal' | +| skill_name | VARCHAR(100) | YES | | 스킬명 (activity_type='skill'일 때) | +| status | VARCHAR(20) | NO | | 'success', 'error', 'partial' | +| result_summary | TEXT | YES | | 결과 요약 | +| error_message | TEXT | YES | | 에러 메시지 (status='error'일 때) | +| meta | JSONB | YES | '{}' | 메타데이터 | +| created_at | TIMESTAMPTZ | YES | NOW() | 생성 시간 | + +**인덱스**: +- `idx_activity_log_robeing_date`: (robeing_id, created_at DESC) +- `idx_activity_log_type`: (activity_type) - `rb_news_url_key`: UNIQUE (url) - `idx_rb_news_url`: btree (url) - `idx_rb_news_slack_message_ts`: btree (slack_message_ts)