기능 변경을 반영하여 테이블을 수정하고 최적화한 새로운 DDL 설계를 아래와 같이 제안할게.


변경 및 추가 사항

  1. 태그 테이블 삭제
  2. 감정 분석 테이블 수정 (diary_emotions → diary_emotion_details)
  3. 감정 트래킹 테이블 수정 (emotion_history → user_emotion_tracking)
  4. 추천 음악 테이블 수정

새로운 DDL 설계

1. 일기 테이블 (변경 없음)

CREATE TABLE diary (
    diary_id NUMBER PRIMARY KEY,
    user_id VARCHAR2(50) REFERENCES users(user_id),
    title VARCHAR2(255),
    content CLOB,
    image_url VARCHAR2(255),
    created_at TIMESTAMP DEFAULT SYSTIMESTAMP,
    updated_at TIMESTAMP DEFAULT SYSTIMESTAMP
);

2. 감정 분석 테이블 (diary_emotion_details)

CREATE TABLE diary_emotion_details (
    emotion_id NUMBER PRIMARY KEY,
    diary_id NUMBER REFERENCES diary(diary_id) ON DELETE CASCADE,
    emotion_type VARCHAR2(50) NOT NULL, -- (예: 행복, 설렘, 만족, 슬픔 등)
    percentage NUMBER(5,2) CHECK (percentage BETWEEN 0 AND 100), -- 감정 비율
    analyzed_at TIMESTAMP DEFAULT SYSTIMESTAMP
);

3. 감정 트래킹 테이블 (user_emotion_tracking)

CREATE TABLE user_emotion_tracking (
    tracking_id NUMBER PRIMARY KEY,
    user_id VARCHAR2(50) REFERENCES users(user_id),
    date_range VARCHAR2(20) NOT NULL, -- ("7일", "30일" 등)
    emotion_type VARCHAR2(50) NOT NULL, -- (예: 행복, 슬픔, 불안 등)
    percentage NUMBER(5,2) CHECK (percentage BETWEEN 0 AND 100),
    analyzed_at TIMESTAMP DEFAULT SYSTIMESTAMP
);

4. 추천 메시지 테이블 (변경 없음)

CREATE TABLE recommended_messages (
    message_id NUMBER PRIMARY KEY,
    emotion_type VARCHAR2(50) NOT NULL,
    message_text VARCHAR2(255)
);

5. 추천 음악 테이블

CREATE TABLE recommended_music (
    music_id NUMBER PRIMARY KEY,
    music_title VARCHAR2(255),
    artist_name VARCHAR2(255),
    music_url VARCHAR2(255)
);

6. 감정별 추천 음악 매핑 테이블 (emotion_music_mapping)