💽 FanPulse MVP 데이터베이스 정의서 (4주)

원본 전체 문서: 데이터베이스_정의서.md

본 문서는 MVP(로그인/회원가입 + 라이브 + 뉴스 + 아티스트) 범위만 발췌/축약합니다.


1. 원칙


2. 테이블

2.1 users

컬럼명 타입 설명
id (PK) UUID 사용자 ID
email VARCHAR(100) UNIQUE 이메일 (Google 로그인만 사용하는 경우 NULL 허용)
password_hash TEXT 비밀번호 해시 (Google 로그인만 사용하는 경우 NULL 허용)
created_at TIMESTAMP DEFAULT NOW() 생성일

비고: Google 로그인만 사용하는 사용자도 존재할 수 있으므로 email/password_hash는 NULL 허용으로 운영하거나, 별도 identity 테이블로 분리합니다(MVP는 아래 oauth_accounts로 커버).

2.2 auth_tokens

컬럼명 타입 설명
id (PK) UUID 토큰 ID
user_id (FK) UUID 사용자 ID
access_token TEXT UNIQUE 액세스 토큰
access_expires_at TIMESTAMP 만료

비고: MVP는 액세스 토큰만 저장하며, 리프레시 토큰은 Next 단계에서 도입합니다.

2.3 oauth_accounts

컬럼명 타입 설명
id (PK) UUID OAuth 계정 ID
user_id (FK) UUID 사용자 ID
provider VARCHAR(20) GOOGLE
provider_user_id VARCHAR(255) Google subject
email VARCHAR(100) Google email(선택)
created_at TIMESTAMP DEFAULT NOW() 생성일

2.4 artists

컬럼명 타입 설명
id (PK) UUID 아티스트 고유 식별자
name VARCHAR(100) 아티스트/그룹명
debut_date DATE 데뷔 날짜
agency VARCHAR(100) 소속사
genre VARCHAR(50) 장르
fandom_name VARCHAR(50) 팬덤 명칭
profile_image_url TEXT 프로필 이미지 URL
description TEXT 소개글
created_at TIMESTAMP DEFAULT NOW() 생성일

데이터 입력 방식: MVP에서는 시드 데이터(seed data)로 초기 아티스트 목록을 입력합니다. 향후 관리자 페이지 구현 시 CRUD 기능을 추가할 예정입니다.

2.5 streaming_events