2022/11/16 manytomany 필드를 잘 사용안하는 이유

노우석·2022년 11월 17일
0

django 모델을 설계할때 manytomany필드를 실무에서는 잘 사용하지 않는다는 이야기를 들었다. 왜 잘 안쓰는지 궁금해서 알아보았다.

가장 첫번째는 중간 테이블을 거쳐야하고 직관성도 좋지 못하다라는 점

manytomany 필드를 사용해서 모델을 만들면 자동으로 양 테이블 중간에 참조하는 객체를 가지고 있는 중간 테이블이 자동으로 만들어지는데 이를 이용해서 참조가 필요할때마다 중간 테이블을 거쳐서 객체를 가져와야 하기 때문에 복잡해지고 무엇보다 모델 코드를 봤을때 직관성으로도 조금 보기에 좋지 못하다.

두번째는 커스텀을 하기가 어렵다는 점

예를 들어 자동으로 생긴 중간 테이블에 내가 필요한 컬럼을 추가하고 싶어도 추가하는 과정 코드 자체가 복잡하고 어려워진다. 따라서 필요에 따라 커스텀을 해야하는 경우 매우 골치 아픈 상황이 펼쳐진다.

manytomany 필드가 좋지 않다면 어떻게 해야할까?

완전한 정답은 아니겠지만 아예 모델링 설계에서 중간테이블 역할을 하는 class를 만들어주면 된다

중간 테이블안에 foreign키를 설정해주고 (through=참조하는 테이블이름) 으로 작성해주면 모델링 직관성도 훨씬

보기에 좋고 중간 테이블 자체를 만들어주었기 때문에 커스텀도 편하게 해줄 수 있다. 다만 ManyToMany 필드가 무조건

안좋다는 말이 아니고 상황에 맞춰서 쓰기에 좋은 환경도 있으니 상황에 맞게 잘 골라서 사용하자

profile
중요한건 버그에게 꺾이지 않는 마음

0개의 댓글