Project/나혼자 미슐랭

나혼자 미슐랭 – DB 설계 정리

Coding Kitsune 2025. 4. 29. 00:17

1. DB 설계 목표

  • 관리 편의성을 높이기 위해 soft delete(deleted 플래그) 방식을 적용
  • 리뷰 수정 가능성을 고려해 modified 컬럼 추가
  • 불필요한 과도한 데이터 저장을 방지하기 위해 varchar 크기 최소화
  • 실시간 별점 계산을 위해 avg_rating 필드 사전 설정
  • "created" 이름 통일로 컬럼명 일관성 확보

 

2. Entity/Table 설계

 

User 테이블

컬럼명 타입 제약조건 설명

id BIGINT PK, Auto Increment 사용자 고유 ID
username VARCHAR(20) NOT NULL 사용자 닉네임
email VARCHAR(50) NOT NULL, UNIQUE 사용자 이메일 (중복 방지)
password VARCHAR(100) NOT NULL 암호화된 비밀번호
created DATETIME DEFAULT CURRENT_TIMESTAMP 가입일
deleted TINYINT(1) DEFAULT 0 삭제 여부 (0: 정상, 1: 삭제됨)

 

Restaurant 테이블

컬럼명 타입 제약조건 설명

id BIGINT PK, Auto Increment 음식점 고유 ID
name VARCHAR(20) NOT NULL 음식점 이름
address VARCHAR(100) NOT NULL 음식점 주소
category VARCHAR(8) NOT NULL 음식 종류
map_url TEXT NULL 허용 지도 링크
avg_rating FLOAT DEFAULT 0.0 평균 별점
created DATETIME DEFAULT CURRENT_TIMESTAMP 등록일
deleted TINYINT(1) DEFAULT 0 삭제 여부

 

Review 테이블

컬럼명 타입 제약조건 설명

id BIGINT PK, Auto Increment 리뷰 고유 ID
restaurant_id BIGINT FK (Restaurant.id 참조) 음식점 ID
user_id BIGINT FK (User.id 참조) 작성자 ID
rating FLOAT NOT NULL 별점 (0.0 ~ 5.0, 0.1 단위)
comment TEXT NULL 허용 한줄평
created DATETIME DEFAULT CURRENT_TIMESTAMP 작성일
modified DATETIME NULL 허용 수정일
deleted TINYINT(1) DEFAULT 0 삭제 여부

 

 

3. 마무리

앞으로 이 기본 설계를 기반으로 API 설계 및 백엔드 구축을 진행할 예정입니다.

필요시 DB 스키마는 수정할 수 있으며, 점진적으로 확장 가능한 구조를 목표로 하고 있습니다.