인프런 커뮤니티 질문&답변
다대다 관계 매핑 설계에 대해 질문드립니다!
작성
·
294
0
안녕하세요! 좋은 강의 찍어주셔서 정말 감사드립니다!
다름이아니라 선생님 말대로 테이블 설계를 하는 도중에 질문을 드립니다!
ex) 아티스트가 여러개의 장르를 다룰 수 있는다고 할 경우
(A 테이블: 아티스트 , B 테이블 : 장르, C: 아티스트_장르)
A : B 가 M:N관계를 갖고 있어서 중간에 C라는 테이블을 자동으로 빠지게 해서 설계를 하려고 합니다
이때 C 테이블을
artist_id genre_id
1 1
1 2
2 1
2 2
이런식으로 pk 없이 A와 B의 pk를 fk로만 받아와서 설계를 진행해도 괜찮을까요?
퀴즈
일대다(One-to-Many) 관계에서 외래 키(Foreign Key)는 일반적으로 어느 쪽에 위치해야 할까요?
'일(One)' 쪽에 위치합니다.
'다(Many)' 쪽에 위치합니다.
관계의 소유자(Owner)가 아닌 쪽에 위치합니다.
관계 설정에 따라 달라지므로 정해진 규칙이 없습니다.
답변 1
2
안녕하세요. loosie 358님
당연히 해당 방법도 가능합니다. PK를 복합키로 지정하는 것이지요.(artist_id, genre_id) JPA도 해당 방법을 지원합니다.
복합키에 대한 내용은 JPA 책 7.3 복합 키와 식별 관계 매핑에서 자세히 설명드립니다.
그런데 복합키를 지정하면 어려가지로 복잡해져서, 이런 경우에도 PK를 하나 추가해서 사용하는 것을 저는 권장드립니다.
감사합니다.





