생각정리/사이드 프로젝트

사이드 프로젝트 : 중고 거래 플랫폼 - 엔티티

생각중임 2024. 1. 13. 18:05

엔티티를 만들면서 ERD 설계 수정 및 관계 수정

  • 유저와 즐겨찾기의 관계는 한 명의 유저에게 즐겨찾기 목록을 추가하는 부분을 즐겨찾기 그룹형식으로 들어가는 게 아닌 유저 한 명의 즐겨찾기로 들어는 걸로 계획을 하여 1대다의 관계에서 1대 1의 관계로 수정
  • 즐겨찾기와 게시글의 관계는 유저 한명의 즐겨찾기에서 여러 개의 게시글을 가지고 하나의 게시글이 여러 명에게 즐겨찾기가 될 수 있으므로 다대 1의 관계가 아닌 다대다의 관계로 수정

즐겨찾기와 게시글의 다대다 관계

다대다 관계를 지양하는 편인데, 이유는 다양한 데이터가 들어갔을 경우 연관관계에 문제가 발생할 수 있다는 점과, 중간 테이블이 숨겨져 있어 예상하지 못한 쿼리들이 발생할 수 있기 때문이다.

다대다 문제를 극복하기 위해서 JPA를 이용해서 ManyToMany의 관계가 아닌 중간 테이블을 직접 생성하여 즐겨찾기와 게시글에서 중간 테이블에 OneToMany관계로 연결을 하고 중간테이블에서 ManyToOne의 관계를 설정해 주는 것으로 다대다 관계를 구성해 중간 테이블도 관리를 할 수 있도록 한다.