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 -- 마지막 업데이트
);
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 -- 연동 시점
);
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 -- 수정일
);
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 -- 업로드 시간
);
diary_emotions
) - 세원AI가 분석한 감정 정보 저장[행복 만족 설렘 평온 불안 슬픔 분노]