인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

오리쉐리님의 프로필 이미지

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

다대다 [N:M]

다대다 연관관계를

작성

·

53

0

다대다 연관관계를 연결테이블을 추가해서 일대다, 다대일 관계로 풀어내야함.

강의 자료에 있는 위 말에 조금 혼동이 있어서 질문드립니다.

  1. 다대다 연관관게를 중간에 연결테이블을 두어서, 연결테이블을 기준으로 다대일 단방향 연관관계나, 다대일 양방향 연관관계로 하는것을 말하는것일까요?

  2. 아니면, 이전 앞선 강의에서 학습한 일대다 단방향 연관관계를 말씀하시는걸까요..?

  3. 강의에서는 중간 테이블을 기준으로 다대일 양방향 연관관계로 진행하신거 같은데, 강의자료에 있는 일대다 관계로 풀어냈다는 말의 의미가 무엇인지 혼동이 와서 질문드립니다..

     

답변 3

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 오리쉐리님

다음 답변을 참고해주세요.

https://www.inflearn.com/questions/1533500

감사합니다.

0

오리쉐리님의 프로필 이미지
오리쉐리
질문자

앞서 일대다 단방향 연관관계와, 일대다 양방향 연관관계를 학습했는데 본 강의에서는 이 의미를 말하는것이 아닌거 같아서요..

 

다대다 연관관계 일때는 중간에 연결 테이블을 추가해서 일대다, 다대일 관계로 풀어내야함.

==>

이때 말하는 일대다와 다대일은 일대다 연관관계나 다대일 연관관계에서의 "일대다", "다대일" 의 개념이 아니라,다대일 양방향 연관관계에서, 한쪽에서는 다대일 관계이고 반대쪽에서는 일대다 관계인데, 이때 말하는 "일대다", "다대일"의 개념을 말하는것이다. 즉 다대다 연관관계일때는 중간에 엔티티를 두어, 중간 엔티티를 기준으로 다대일 단방향 연관관계나, 다대일 양방향 연관관계로 해야한다.

 

이렇게 이해해도 괜찮을까요?

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 오리쉐리님.

JPA에서 다대다(Many-to-Many) 연관관계는 일반적으로 중간에 연결 테이블을 두고 이를 통해 일대다(One-to-Many)와 다대일(Many-to-One) 연관관계로 풀어내는 방식으로 구현합니다. 이를 통해 연결 테이블에 추가적인 정보를 저장할 수 있는 유연성을 확보하게 됩니다.

  1. 연결 테이블을 통한 다대일 관계: 연결 테이블을 사용하여 각 기존 엔티티가 중간 테이블과 다대일 관계를 갖도록 설계합니다. 이를 통해 테이블 간의 양방향 연관관계를 설정할 수 있으며, 중간 테이블에 추가적인 속성(예: 날짜, 수량)을 담을 수 있습니다.

  2. 일대다 단방향 연관관계: 각각의 엔티티가 연결 테이블에 대해 일대다로 연결되어 있는 상태를 의미합니다. 이 방식은 더 간단한 데이터 모델링이 가능하지만, 연결 테이블에 추가적인 정보를 넣기는 어렵습니다.

  3. 일대다 관계로의 해소: 강의에서 일대다 관계로 풀어냈다는 말은 다대다 관계를 직접 사용하는 대신, 연결 테이블을 통해 일대다 및 다대일 관계로 재구성하여 데이터 저장 및 관리를 하게 되는 과정을 말합니다. 이는 실무에서 매우 자주 사용되며 JPA에서도 권장하는 설계 방식 중 하나입니다.

다대다 관계를 일대다 및 다대일로 풀어내는 설명이 혼동스러우셨다면, 아래의 유사 질문 및 설명을 참고하시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.