• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

안녕하세요 manytomany field 에 대하여 질문드립니다!

22.09.13 16:59 작성 조회수 155

0

안녕하세요 제목처럼 다대다 관계를 설정할 때 manytomany 필드를 사용하자나요?

근데 JPA 같은 경우는 새로운 필드 매핑 추가가 안된다고 실무에서는 절대 manytomany 매핑을 사용하면 안된다고 하자나요 ㅎㅎ;

 

근데 장고는 manytomany 필드에 through를 통해서 중간테이블을 생성하고 컬럼을 추가할 수 있다곤 하지만, 결국 JPA 처럼 중간 테이블을 생성해야하는 거자나요

 

결국 그냥 실무적으로보면 처음 DB생성할때 manytomany 필드 사용할때 JPA처럼 처음부터 중간 테이블을 생성하는게 정석일까요?? 아니면 필요할 때만 through로 중간 테이블을 추가하나요?

 

 

 

답변 1

답변을 작성해보세요.

1

안녕하세요.

이미 답을 다 가지고 계신 듯 합니다. :-)

jpa의 m2m은 중간 관계 테이블을 생성해줄 뿐, 커스텀으로 중간 관계 역할로서 엔티티를 지정하는 기능을 지원하지 않기에 사용하지 않는 것이 좋겠다. 라는 의견들이 있는 듯 하구요. 직접적으로 m2m을 쓰지않더라도 ManyToOne과 OneToMany를 통해 결국 m2m 관계를 구현하는 거죠.

장고의 m2m 필드는 through를 지원하기에 이러한 제약이 없는 것이구요.

“실무적”이라는 말로 모든 경우의 수를 퉁치는 것은 적절하지 않다고 생각합니다. 은총알은 없다라는 말이 있죠. 모든 선택에는 trade off가 있는 것이구요. 각 선택을 이해하는 것이 중요하다고 생각합니다.

중간 관계 테이블에 추가적인 필드가 필요하다면 through를 통해 커스텀 관계모델을 지정하시면 되구요. 필요없으시다면 지정하지 않으시면 되겠죠. 물론 이때 나중에 커스텀 관계모델이 필요하시면 추가하시고 마이그레이션 하시면 됩니다. 다만 마이그레이션에 비용이 들겠죠.

더 궁금한 부분이 있으시면 댓글 남겨주시고, 궁금증이 해결되셨다면 본 질문의 상태를 해결됨으로 변경 부탁드립니다.

화이팅입니다. :-)