Django: ManyToManyField

BY Jung·2021년 12월 14일
0

ManyToManyField란?

이름 그대로 DB Modeling 중에 N to N 관계인 두 개의 테이블을 연결할 때 사용한다.
N to N 관계인 테이블을 그냥 연결하면 각 테이블의 객체가 가진 고유한 id가 겹치는 상황이 발생하며 이를 방지하기 위해 본래 중간 테이블이 필요하나, 장고에선 두 테이블 중 한 곳에만 ManyToManyField를 선언해주면 자동적으로 중간 테이블을 생성해준다.

ManyToManyField의 장점

장점은 효율성이다.
영화배우(actors)와 영화(movies)의 DB를 생성할 때에 ManyToManyField를 사용하지 않고 각자 외래키를 주게 된다면 그 이후 작업내용은 아래와 같다.

첫째, movies_actors 중간 테이블을 생성하여
둘째, 각 테이블의 객체가 가진 id를 일일히 삽입해줘야 한다.

그러나 ManyToManyField를 사용한다면?
각 테이블에 이미 생성된 객체들의 id만을 따와서 서로 연결만 해주면 알아서 movies_actors에 반영된다!!!

profile
Slow and steady wins the race

0개의 댓글