
star-breaker-raid 웹 서비스의 ERD 입니다.
users : 사용자 데이터 저장 테이블
CREATE TABLE users (
user_id VARCHAR(50) PRIMARY KEY,
password VARCHAR(255),
role_id INT,
user_name VARCHAR(50),
birthday INT,
nickname VARCHAR(255) DEFAULT '',
FOREIGN KEY (role_id) REFERENCES roles(role_id)
);
raid_posts : 레이드 계시판 기본 정보 저장 테이블
CREATE TABLE raid_posts (
post_id SERIAL PRIMARY KEY,
raid_name VARCHAR(255),
raid_time TIMESTAMP,
limit_level INT,
raid_gateway VARCHAR(50),
user_id VARCHAR(255),
post_position VARCHAR(255),
noti TEXT,
character_classicon VARCHAR(255),
character_image VARCHAR(255),
raid_type VARCHAR(50),
raid_maxtime VARCHAR(50)
raid_LimitPerson INT,
character_name VARCHAR(255),
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE
);
applicants_list : 레이드 계시판이 신청자 리스트 테이블
CREATE TABLE applicants_list (
applicants_id SERIAL PRIMARY KEY,
user_id VARCHAR(50), -- users 테이블의 user_id 타입과 맞춰야 합니다
character_name VARCHAR(255),
hope VARCHAR(255),
post_id INT,
character_image VARCHAR(255),
character_icon VARCHAR(255),
approval BOOLEAN DEFAULT FALSE,
FOREIGN KEY (post_id) REFERENCES raid_posts(post_id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE,
FOREIGN KEY (character_name) REFERENCES characters(character_name) ON DELETE CASCADE -- 필요시 ON DELETE CASCADE 추가
);
characters : 유저의 캐릭터 정보를 저장하는 테이블
CREATE TABLE characters (
character_name VARCHAR(255) PRIMARY KEY,
user_id VARCHAR(255),
character_level VARCHAR(10, 2),
character_class VARCHAR(255),
server_name VARCHAR(255),
class_image VARCHAR(255),
class_icon_url VARCHAR(255),
transcendence INT DEFALUT 0,
elixir INT DEFALUT 0,
leap INT DEFALUT 0,
enlightenment INT DEFALUT 0,
evolution INT DEFALUT 0,
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE
);
role
CREATE TABLE roles (
role_id SERIAL PRIMARY KEY,
role VARCHAR(255)
);
raid_guide
CREATE TABLE raid_guide (
guide_id SERIAL PRIMARY KEY,
guide_name VARCHAR(255),
youtube_url TEXT,
image_url TEXT,
create_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
guide_image TEXT,
role_id INT,
FOREIGN KEY (role_id) REFERENCES roles(role_id)
);
like_guide
CREATE TABLE like_guide (
like_id SERIAL PRIMARY KEY,
user_id VARCHAR(255),
guide_id INTEGER, -- guide_id 타입을 INTEGER로 맞춤
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE,
FOREIGN KEY (guide_id) REFERENCES raid_guide(guide_id) ON DELETE CASCADE
);
schedule
CREATE TABLE schedule (
schedule_id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
user_id VARCHAR(255),
user_id VARCHAR(255),
schedule_time TIMESTAMP,
raid_gold INT,
character_name VARCHAR(255),
FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE,
FOREIGN KEY (character_name) REFERENCES characters(character_name) ON DELETE CASCADE
);
homework
CREATE TABLE homework (
user_id VARCHAR(50) REFERENCES users(user_id) ON DELETE CASCADE,
character_name VARCHAR(255) REFERENCES characters(character_name) ON DELETE CASCADE,
guild BOOLEAN[] DEFAULT ARRAY[false, false, false, false, false, false, false],
chaso_dungeon BOOLEAN[] DEFAULT ARRAY[false, false, false, false, false, false, false],
guardian BOOLEAN[] DEFAULT ARRAY[false, false, false, false, false, false, false],
epona BOOLEAN[] DEFAULT ARRAY[false, false, false, false, false, false, false],
PRIMARY KEY (user_id, character_name)
);
expedition
CREATE TABLE expedition (
user_id VARCHAR(50) PRIMARY KEY REFERENCES users(user_id) ON DELETE CASCADE,
gathering BOOLEAN[7] DEFAULT ARRAY[false, false, false, false, false, false, false],
wisdom BOOLEAN[7] DEFAULT ARRAY[false, false, false, false, false, false, false],
dayContent BOOLEAN[7] DEFAULT ARRAY[false, false, false, false, false, false, false]
);