Skip to content

database

DongKwon Kim edited this page Apr 13, 2025 · 17 revisions
erDiagram
    USERS ||--|{ PERSONAL_EVENT : "1 to many"
    USERS ||--|{ CALENDAR : "1 to many"
    USERS ||--|{ REFRESH_TOKEN : "1 to many"
    CALENDAR ||--|{ PERSONAL_EVENT : "1 to many"
    USERS ||--|{ DISCUSSION_PARTICIPANT : "1 to many"
    DISCUSSION ||--|{ DISCUSSION_PARTICIPANT : "1 to many"
    DISCUSSION ||--|| SHARED_EVENT : "1 to 1"

    %% USERS
    USERS {
        bigint id PK "NN"
        varchar(120) name "NN"
        varchar(320) email "NN"
        varchar(2048) access_token "NN"
        varchar(512) refresh_token
        varchar(2083) picture "NN"
        datetime created_at
        datetime updated_at
    }

    %% REFRESH_TOKEN
    REFRESH_TOKEN {
		    bigint id PK "NN"
        bigint user_id FK "NN"
        varchar token "NN"
        datetime expiration "NN"
        datetime created_at
        datetime updated_at
    }

    %% CALENDAR
    CALENDAR {
        bigint id PK "NN"
        bigint user_id FK "NN"
        varchar(255) name "NN"
        varchar(1024) description
        varchar(1024) sync_token
        varchar(1024) calendar_id "NN"
        varchar(255) channel_id
        varchar(255) resource_id
        datetime channel_expiration
        datetime created_at
        datetime updated_at
    }

    %% PERSONAL_EVENT
    PERSONAL_EVENT {
        bigint id PK "NN"
        bigint user_id FK "NN"
        varchar(1024) title "NN"
        datetime start_time "NN"
        datetime end_time "NN"
        tinyint is_adjustable
        varchar(1024) calender_id
        varchar(1024) google_event_id
        datetime created_at
        datetime updated_at
    }

    %% DISCUSSION (논의)
    DISCUSSION {
        bigint id PK "NN"
        varchar(255) title "NN"
        date date_range_start "NN"
        date date_range_end "NN"
        time time_range_start "NN"
        time time_range_end "NN"
        int duration "NN"
        varchar(10) meeting_method "NN"
        varchar(255) location
        datetime deadline "NN"
        varchar(10) discussion_status "NN"
        varchar(128) password
        date fixed_date
        datetime created_at
        datetime updated_at
    }

    %% DISCUSSION_PARTICIPANT (논의 참여자)
    DISCUSSION_PARTICIPANT {
        bigint id PK "NN"
        bigint discussion_id FK "NN"
        bigint user_id FK "NN"
        int user_offset "NN"
        tinyint is_host "NN"
        datetime created_at
        datetime updated_at
    }
    %% role: host, attendee

    %% SHARED_EVENT (최종 확정 공유 일정)
    SHARED_EVENT {
        bigint id PK "NN"
        bigint discussion_id FK "NN"
        datetime start_time "NN"
        datetime end_time "NN"
        datetime created_at
        datetime updated_at
    }
Loading

Clone this wiki locally