happybell80 6fc88d2a6d PostgreSQL 테이블 구조 문서 현행화 - 전수 조사 결과 반영
- 실제 테이블명 일치 (users→user, companies→company 등)
- 11개 테이블 실제 컬럼 구조 반영
- 각 테이블 레코드 수 추가
- 존재하지 않는 테이블 제거
- 외래키 관계 현행화
2025-09-11 20:19:25 +09:00

8.7 KiB

PostgreSQL 테이블 구조

작성일: 2025-08-20

최종 수정일: 2025-09-11

데이터베이스: main_db


1. 조직 관련 테이블

company

  • 용도: 회사 정보
  • Primary Key: id (UUID)
  • 레코드: 2개
컬럼명 타입 NULL 기본값 설명
id UUID NO 회사 ID
name VARCHAR(255) NO 회사명
url VARCHAR(255) YES 회사 URL
created_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 생성 시각
updated_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 수정 시각

team

  • 용도: 팀 정보
  • Primary Key: id (UUID)
  • 레코드: 2개
컬럼명 타입 NULL 기본값 설명
id UUID NO 팀 ID
company_id UUID NO 회사 ID (FK → company)
name VARCHAR(32) NO 팀 이름
created_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 생성 시각
updated_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 수정 시각

user

  • 용도: 시스템 사용자 정보
  • Primary Key: id (UUID)
  • 레코드: 1개
컬럼명 타입 NULL 기본값 설명
id UUID NO 사용자 ID
team_id UUID NO 팀 ID (FK → team)
email VARCHAR(255) NO 이메일 (UNIQUE)
name VARCHAR(255) YES 사용자명
picture VARCHAR(500) YES 프로필 이미지
oauth_provider VARCHAR(50) YES OAuth 제공자
oauth_id VARCHAR(255) YES OAuth ID
is_active BOOLEAN YES 활성 상태
last_login_at TIMESTAMPTZ YES 마지막 로그인
created_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 생성 시각
updated_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 수정 시각
username VARCHAR(64) YES 사용자명

workspace_member

  • 용도: 워크스페이스 멤버십
  • Primary Key: id (UUID)
  • 레코드: 0개
컬럼명 타입 NULL 기본값 설명
id UUID NO 멤버십 ID
user_id UUID NO 사용자 ID (FK → user)
role user_role NO GUEST 역할 (OWNER/MEMBER/GUEST)
is_active BOOLEAN YES 활성 상태
joined_at TIMESTAMP YES CURRENT_TIMESTAMP 가입 시각
updated_at TIMESTAMP YES CURRENT_TIMESTAMP 수정 시각

2. 제품 및 로빙 테이블

product

  • 용도: 제품 정보
  • Primary Key: id (UUID)
  • 레코드: 1개
컬럼명 타입 NULL 기본값 설명
id UUID NO 제품 ID
name VARCHAR(32) NO 제품명
app_id VARCHAR(16) YES 앱 ID
scope JSON YES 권한 범위
description VARCHAR(256) YES 설명
created_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 생성 시각
updated_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 수정 시각

robeing

  • 용도: 로빙 엔티티 정보
  • Primary Key: id (UUID)
  • 레코드: 2개
컬럼명 타입 NULL 기본값 설명
id UUID NO 로빙 ID
product_id UUID NO 제품 ID (FK → product)
team_id UUID NO 팀 ID (FK → team)
name VARCHAR(32) YES 로빙 이름
level INTEGER YES 1 레벨
experience INTEGER YES 0 경험치
memory INTEGER YES 10 메모리 스탯
compute INTEGER YES 10 연산 스탯
react INTEGER YES 10 반응 스탯
empathy INTEGER YES 10 공감 스탯
leadership INTEGER YES 10 리더십 스탯
updated_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 수정 시각
created_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 생성 시각
robeing_container_id VARCHAR(64) YES 컨테이너 ID
robeing_container_url VARCHAR(128) YES 컨테이너 URL

3. Slack 통합 테이블

slack_workspace

  • 용도: Slack 워크스페이스 정보
  • Primary Key: id (UUID)
  • 레코드: 2개
컬럼명 타입 NULL 기본값 설명
id UUID NO 워크스페이스 ID
team_id UUID NO 팀 ID (FK → team)
slack_team_id VARCHAR(32) YES Slack 팀 ID
bot_token VARCHAR(255) YES 봇 토큰
is_enterprise_install BOOLEAN YES 엔터프라이즈 설치
is_active BOOLEAN YES 활성 상태
installed_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 설치 시각
updated_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 수정 시각
created_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 생성 시각

4. 사용자 설정 및 토큰 테이블

user_preference

  • 용도: 사용자 개인 설정
  • Primary Key: id (INTEGER)
  • 레코드: 0개
컬럼명 타입 NULL 기본값 설명
id INTEGER NO 설정 ID
user_id UUID NO 사용자 ID (FK → user)
slack_user_id VARCHAR(32) YES Slack 사용자 ID
news_keywords VARCHAR(128)[] YES 뉴스 키워드
email_filter VARCHAR(128)[] YES 이메일 필터
briefing_enabled BOOLEAN YES true 브리핑 활성화
briefing_time TIME YES 09:00:00 브리핑 시간
updated_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 수정 시각
created_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 생성 시각

gmail_token

  • 용도: Gmail OAuth 토큰
  • Primary Key: id (UUID)
  • 레코드: 0개
컬럼명 타입 NULL 기본값 설명
id UUID NO 토큰 ID
user_id UUID NO 사용자 ID (FK → user)
token_data JSONB YES 토큰 데이터
oauth_config JSONB YES OAuth 설정
scopes JSONB YES 권한 범위
metadata JSONB YES 메타데이터
expiry TIMESTAMP YES 만료 시각
is_equipped BOOLEAN YES false 장착 상태
equipped_to VARCHAR(50) YES 장착 대상
token_type VARCHAR YES Bearer 토큰 타입
expires_at DOUBLE PRECISION YES 만료 시간
created_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 생성 시각
updated_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 수정 시각

5. 로그 및 데이터 테이블

conversation_log

  • 용도: 대화 기록
  • Primary Key: id (INTEGER)
  • 레코드: 0개
컬럼명 타입 NULL 기본값 설명
id INTEGER NO 로그 ID
user_id UUID NO 사용자 ID (FK → user)
channel_id VARCHAR(16) YES 채널 ID
message VARCHAR YES 사용자 메시지
response VARCHAR YES 응답 메시지
intent VARCHAR(256) YES 의도 분석
confidence DOUBLE PRECISION YES 신뢰도
thread_ts VARCHAR(128) YES 스레드 타임스탬프
timestamp TIMESTAMPTZ YES 대화 시각
channel_type VARCHAR(32) YES 채널 타입

news

  • 용도: 뉴스 데이터
  • Primary Key: id (UUID)
  • 레코드: 0개
컬럼명 타입 NULL 기본값 설명
id UUID NO 뉴스 ID
user_id UUID YES 사용자 ID (FK → user)
data JSONB YES 뉴스 데이터
created_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 생성 시각
updated_at TIMESTAMPTZ YES CURRENT_TIMESTAMP 수정 시각

6. 기타 정보

Custom Types

  • user_role: ENUM (OWNER, MEMBER, GUEST)

Functions

  • update_column_updated_at: 모든 테이블의 updated_at 자동 갱신 트리거

외래키 관계

테이블 컬럼 참조 테이블 참조 컬럼
team company_id company id
user team_id team id
robeing product_id product id
robeing team_id team id
slack_workspace team_id team id
workspace_member user_id user id
conversation_log user_id user id
gmail_token user_id user id
news user_id user id
user_preference user_id user id

주의사항

데이터베이스 정보

  • 소유자: 모든 테이블 robeings 소유
  • 타임스탬프: TIMESTAMPTZ 사용 (WITH TIME ZONE)
  • 자동 갱신: update_column_updated_at 트리거로 updated_at 자동 관리
  • UUID 기반: 주요 테이블 모두 UUID 사용

현재 데이터 상태 (2025-09-11)

  • company: 2개
  • team: 2개
  • user: 1개
  • product: 1개
  • robeing: 2개
  • slack_workspace: 2개
  • 나머지 테이블: 비어있음

문서 끝