Package Scope
Package name: backend
Overview
프로필 부가 정보(베이스 스키장, 라이딩 성향)의 다대다 관계를 RDBMS 정석대로 처리하기 위한 데이터베이스 스키마 및 ERD를 정립합니다.
Describe the solution you'd like
1. MySQL 8.0 JSON 컬럼 사용 고민과 한계
- MySQL 8.0에서 지원하는 JSON 타입 컬럼을 활용하는 방안을 검토함.
- 그러나 RDBMS의 본질인 중복 제거 및 FK 참조 무결성 철학에 위배되며, 향후 스키장 명칭 변경 등 데이터 수정 발생 시 전체 유저의 JSON 데이터를 훑어 마이그레이션해야 하는 치명적 공수가 존재함.
2. 최종 결정 전략
- RDBMS의 정밀함과 무결성에 충실하게 중계 테이블(
member_resort, member_riding_style)을 이용한 1:N, N:1 정석 분리를 채택.
- JPA 복합키 사용으로 인한 개발 지옥을 피하기 위해 중계 테이블에는 단일 대리키
id (PK) + UNIQUE KEY 구조를 채택.
- 비회원 및 익명 작성 지원을 위한
member_id NULLABLE 처리, 비회원 비밀번호(anonymous_password BCrypt), 작성자 IP (writer_ip) 보관 반영.
Additional context
- 1차 MVP 대상 총 11개 엔티티(회원, 크루, 리조트, 라이딩스타일, 카테고리, 게시글, 이미지, 추천/비추천, 댓글) 스키마 반영.
Package Scope
Package name:
backendOverview
프로필 부가 정보(베이스 스키장, 라이딩 성향)의 다대다 관계를 RDBMS 정석대로 처리하기 위한 데이터베이스 스키마 및 ERD를 정립합니다.
Describe the solution you'd like
1. MySQL 8.0 JSON 컬럼 사용 고민과 한계
2. 최종 결정 전략
member_resort,member_riding_style)을 이용한 1:N, N:1 정석 분리를 채택.id(PK) +UNIQUE KEY구조를 채택.member_idNULLABLE 처리, 비회원 비밀번호(anonymous_passwordBCrypt), 작성자 IP (writer_ip) 보관 반영.Additional context