작성
·
499
0
안녕하세요 영한님.
매번 좋은 강의 감사드립니다.
다름이 아니라 하나의 컬럼이 둘 이상의 연관관계를 맺는 경우(?)는 어떻게 처리를 해야될지 고민이어서 질문을 남깁니다.
일단 간단히 테이블간 erd를 그려보면 아래와 같습니다.
회원과 관리자, 요청 3개의 테이블이 있습니다.
요청 테이블에는 요청자에 대한 정보를 저장하는데 요청자는 회원 또는 관리자가 될 수 있습니다.
요청자ID(FK)에는 회원ID 또는 관리자ID가 저장이 되고 요청자유형으로 회원인지 관리자인지 구분을 할려고 합니다.
그런데 JPA에서 엔티티를 작성할려고 보니 애매하더라구요..
이렇게 하나의 컬럼이 둘 이상 연관관계를 맺게 되는 경우는 어떻게 처리를 해야 될까요..?
그냥 요청자ID 하나에 회원ID와 관리자ID 둘 중 하나를 받지 않고 요청 테이블에서 관리자ID(FK), 회원ID(FK) 각각 따로 받는게 더 좋은 방법인지도 잘 모르겠습니다.
답변 부탁드립니다
감사합니다..!
답변 1
1
안녕하세요. 치훈이님
이 문제는 회원과 관리자 테이블을 하나로 통합하고, 통합한 회원 테이블에 Type 정보를 두고, 일반 회원인지 관리자인지 구분하는게 더 나은 방법이라 생각합니다.
만약 그래도 유지하고 싶다면 하나의 컬럼이 둘 이상 연관관계를 맺는 부분은 JPA에서 지원하지 않습니다. 따라서 엔티티 연관관계를 설정하지 않고 직접 id를 관리해야 합니다.
그리고 이런 관계를 arc 관계라고 하는데요. 다음을 참고해주세요.
https://www.inflearn.com/questions/14583
감사합니다.
답변감사합니다.
이런 관계를 arc 관계라고 하는군요ㅎㅎ
추가해주신 답변보고 다시한번 고민해보겠습니다. 감사합니다!