🎯 프로젝트 리브랜딩: Kumamoto → Travel Planner v2.0
✨ 주요 변경사항: - 프로젝트 이름: kumamoto-travel-planner → travel-planner - 버전 업그레이드: v1.0.0 → v2.0.0 - 멀티유저 시스템 구현 (JWT 인증) - PostgreSQL 마이그레이션 시스템 추가 - Docker 컨테이너 이름 변경 - UI 브랜딩 업데이트 (Travel Planner) - API 서버 및 인증 시스템 추가 - 여행 공유 기능 구현 - 템플릿 시스템 추가 🔧 기술 스택: - Frontend: React + TypeScript + Vite - Backend: Node.js + Express + JWT - Database: PostgreSQL + 마이그레이션 - Infrastructure: Docker + Docker Compose 🌟 새로운 기능: - 사용자 인증 및 권한 관리 - 다중 여행 계획 관리 - 여행 템플릿 시스템 - 공유 링크 및 댓글 시스템 - 관리자 대시보드
This commit is contained in:
66
server/schema.sql
Normal file
66
server/schema.sql
Normal file
@@ -0,0 +1,66 @@
|
||||
-- 여행 계획 테이블
|
||||
CREATE TABLE IF NOT EXISTS travel_plans (
|
||||
id SERIAL PRIMARY KEY,
|
||||
start_date DATE NOT NULL,
|
||||
end_date DATE NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 날짜별 일정 테이블
|
||||
CREATE TABLE IF NOT EXISTS day_schedules (
|
||||
id SERIAL PRIMARY KEY,
|
||||
travel_plan_id INTEGER REFERENCES travel_plans(id) ON DELETE CASCADE,
|
||||
schedule_date DATE NOT NULL,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 활동 테이블
|
||||
CREATE TABLE IF NOT EXISTS activities (
|
||||
id SERIAL PRIMARY KEY,
|
||||
day_schedule_id INTEGER REFERENCES day_schedules(id) ON DELETE CASCADE,
|
||||
time VARCHAR(10) NOT NULL,
|
||||
title VARCHAR(255) NOT NULL,
|
||||
description TEXT,
|
||||
location VARCHAR(255),
|
||||
type VARCHAR(50) NOT NULL,
|
||||
lat DECIMAL(10, 7),
|
||||
lng DECIMAL(10, 7),
|
||||
images TEXT[],
|
||||
links TEXT[],
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 관련 장소 테이블
|
||||
CREATE TABLE IF NOT EXISTS related_places (
|
||||
id SERIAL PRIMARY KEY,
|
||||
activity_id INTEGER REFERENCES activities(id) ON DELETE CASCADE,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
description TEXT,
|
||||
address VARCHAR(255),
|
||||
lat DECIMAL(10, 7),
|
||||
lng DECIMAL(10, 7),
|
||||
memo TEXT,
|
||||
will_visit BOOLEAN DEFAULT false,
|
||||
category VARCHAR(50) DEFAULT 'other',
|
||||
images TEXT[],
|
||||
links TEXT[],
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 기본 포인트 테이블
|
||||
CREATE TABLE IF NOT EXISTS base_points (
|
||||
id SERIAL PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
address VARCHAR(255),
|
||||
type VARCHAR(50) NOT NULL,
|
||||
lat DECIMAL(10, 7) NOT NULL,
|
||||
lng DECIMAL(10, 7) NOT NULL,
|
||||
memo TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
|
||||
-- 인덱스 생성
|
||||
CREATE INDEX IF NOT EXISTS idx_day_schedules_plan ON day_schedules(travel_plan_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_activities_schedule ON activities(day_schedule_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_related_places_activity ON related_places(activity_id);
|
||||
Reference in New Issue
Block a user