런픽 | EP02-1. ERD 설계 - 유저, 인증 및 러닝화
이전 글에 이어서 리뷰와 관련된 erd들을 작성해보려고 한다.
리뷰 테이블(reviews)
리뷰와 관련된 데이터들은 이 프로젝트의 핵심 콘텐츠이다. 와이어 프레임은 다음과 같다.
우선 reviews라는 테이블에는 별점(rating)과 리뷰 내용(content)만 컬럼으로 포함될 예정이다. 그외 세부사항들은 다른 테이블에서 다룰 계획이다. 또한 리뷰 역시 유저당 하나의 러닝화에 하나의 리뷰만 가능하기 때문에 user_id, shoes_id 두 컬럼을 조합한 복합 유니크 인덱스가 있어야 한다.
리뷰 상세 테이블(review_details)
러닝화 리뷰에 대한 상세 지표들은 이와 같이 따로 보여지기 때문에 새로운 리뷰 지표가 추가되거나 수정되는 등 확장성을 고려하여 테이블 역시 분리시켰다. 각 지표별로 설계는 어떻게 할지 고민해봤는데 크게 열거형(ENUM 타입 사용), 참조 테이블을 사용하는 방법이 있었다.
흠... 위의 저 상세 지표들에 대한 값들이 과연 자주 변경될 일이 있을까? 관계형 데이터베이스 초짜인 내가 진행하는 프로젝트여서 코딩 도중 스키마를 몇 번 갈아 엎을 것 같은 모습이 벌써 그려지긴 하지만... 그래도 현재 생각으로는 이 데이터들은 ENUM 타입을 사용하는 것이 더 나을 것 같다고 생각한다. 뭐 문제가 생기면 그때 수정해보면 되겠지..!
여하튼 각각의 지표들에 대한 ENUM 타입을 만든 후 테이블을 만들었다.
러닝화 추천 테이블(review_recommendations)
이외에 리뷰 조회수,(hits_reviews) 리뷰 댓글(review_comments)에 대한 테이블들도 작성하였고, 결과는 다음과 같다.
'개발자 도전기 > [PROJECT] 기획부터 개발까지! 러닝화 분석 웹앱' 카테고리의 다른 글
런픽 | EP04. prisma Schema 작성하기 (0) | 2024.06.03 |
---|---|
런픽 | EP03. nestJS 프로젝트 생성 및 nestJS, prisma 환경 설정 (0) | 2024.05.29 |
런픽 | EP02-1. ERD 설계 - 유저, 인증 및 러닝화 (0) | 2024.05.12 |
런픽 | EP01. 와이어 프레임 제작 (0) | 2024.05.04 |
런픽 | EP0. 올해는 반드시 사이드 프로젝트를 완수하자...! (0) | 2024.04.29 |
댓글