• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

이전 질문에 연장되는 질문입니다.

22.07.17 17:03 작성 조회수 118

0

 안녕하세요 조현영님. 주말에도 답변 계속 달아주셔서 감사드립니다. 정말 도움이 많이됩니다!  저번 질문에서 제가 리뷰와 이미지 사이의 관계를 여쭤봤을 때 조현영님께서 리뷰와 이미지 사이의 관계는 일대다라고 하셨었죠.

 이렇게 되면 리뷰쪽 컬럼에는 oneToMany, 이미지 쪽에는 ManyToOne이 붙게 되어 더불어 JoinColumn까지 이미지 쪽에 붙게 됩니다. 그러면 이미지 쪽에 리뷰에 관한 외래키 컬럼이 생성됩니다. 

 그런데 저는 여기서 위와 똑같은 방식으로 리뷰 대신 문의의 관련된 엔티티와 리뷰와 이미지를 관계 설정한것 처럼 똑같이 하려 합니다. 그러면 결국에 이미지 쪽에는 리뷰에 관한 외래키 컬럼과 문의에 관한 외래키 컬럼이 생기게 되는 것이죠.

 여기서가 핵심인데 이렇게 되면 이미지 엔티티에는 리뷰, 문의가 공존하게 되는데 만약 리뷰가 있을시 문의의 외래키 컬럼에는 null값으로 존재하게 되고 문의가 있을시 리뷰의 외래키 컬럼에는 null값으로 존재합니다. 그리고 이미지에 추가적으로 상품 이미지 역시 존재합니다.

 이러면 이미지 엔티티에 세 개(상품, 리뷰, 문의)의 외래키 컬럼이 존재하게 되는데 만약에 한 개의 컬럼에 값이 존재할 때 나머지 두개는 null값인 형태입니다. 그래서 제 결론은 이미지 엔티티 하나에 세 개의 외래키를 전부 넣는것이 아닌 예를 들어 상품 이미지 엔티티, 리뷰 이미지 엔티티, 문의 이미지 엔티티 이런식으로 엔티티를 각각 만들어야 할거 같은데 실무에서는 어떻게 해결하는지 조현영님의 의견이 궁금합니다. 

 

답변 1

답변을 작성해보세요.

0

네 원칙적으로는 각각 따로 이미지 엔티티를 만드는 게 맞습니다.

이승훈님의 프로필

이승훈

질문자

2022.07.18

감사합니다!