데이터베이스 테이블 설계

1. 사용자 테이블 (users) - 주승

회원 정보를 저장하는 테이블

CREATE TABLE users (
    user_id VARCHAR2(50) PRIMARY KEY, -- 유저 ID (UUID or OAuth ID)
    email VARCHAR2(100) UNIQUE NOT NULL, -- 이메일
    password VARCHAR2(255), -- 비밀번호 (OAuth 사용자는 NULL 가능)
    name VARCHAR2(50) NOT NULL, -- 사용자 이름
    oauth_provider VARCHAR2(20), -- (naver, kakao, google, local)
    created_at TIMESTAMP DEFAULT SYSTIMESTAMP, -- 가입일
    updated_at TIMESTAMP DEFAULT SYSTIMESTAMP -- 마지막 업데이트
);


2. OAuth 계정 연동 테이블 (oauth_accounts) - 주승

OAuth 로그인 시 필요한 정보 저장

CREATE TABLE oauth_accounts (
    oauth_id VARCHAR2(100) PRIMARY KEY, -- OAuth 제공자의 사용자 ID
    user_id VARCHAR2(50) REFERENCES users(user_id), -- 유저 ID (users 테이블과 연결)
    provider VARCHAR2(20) NOT NULL, -- OAuth 제공자 (naver, kakao, google)
    created_at TIMESTAMP DEFAULT SYSTIMESTAMP -- 연동 시점
);


3. 일기 테이블 (diary) - 지원

사용자가 작성한 일기 정보를 저장

CREATE TABLE diary (
    diary_id NUMBER PRIMARY KEY, -- 일기 ID
    user_id VARCHAR2(50) REFERENCES users(user_id), -- 작성자
    title VARCHAR2(255), -- 제목
    content CLOB, -- 내용
    image_url VARCHAR2(255), -- 첨부 이미지 (여러 개 저장 시 `diary_images` 테이블 활용)
    created_at TIMESTAMP DEFAULT SYSTIMESTAMP, -- 작성일
    updated_at TIMESTAMP DEFAULT SYSTIMESTAMP -- 수정일
);


4. 일기 이미지 테이블 (diary_images) - 지원

일기 한 개에 여러 개의 이미지를 저장 가능

CREATE TABLE diary_images (
    image_id NUMBER PRIMARY KEY, -- 이미지 ID
    diary_id NUMBER REFERENCES diary(diary_id) ON DELETE CASCADE, -- 일기 ID
    image_url VARCHAR2(255) NOT NULL, -- 이미지 URL
    uploaded_at TIMESTAMP DEFAULT SYSTIMESTAMP -- 업로드 시간
);


5. 감정 분석 테이블 (diary_emotions) - 세원

AI가 분석한 감정 정보 저장[행복 만족 설렘 평온 불안 슬픔 분노]