Django
[Django] 24. M:N 관계
개발자 뭄뭄
2022. 11. 4. 21:19
반응형
1. M-N ?
- Many-to-many relationships
- 한 테이블의 0개 이상의 레코드가 다른 테이블의 0개 이상의 레코드와 관련된 경우
- 양쪽 모두에서 N:1 관계를 가진다.
2. ManyToManyField
- 중개 테이블을 자동으로 생성한다.
- ManyToManyField는 M:N 관게를 맺는 두 모델 어디에 위치해도 상관 없다.
- 대신 참조와 역참조 방향을 주의해야 한다.
3. ManyToManyField Arguments
- related_name
- target model이 source model을 참조할 때 사용할 manager name
- ForeignKey의 related_name과 동일한 역할
- through
- 중개테이블을 직접 작성하는 경우, through 옵션을 사용하여 중개 테이블을 나타내는 Django 모델을 지정
- 일반적으로 중개 테이블에 추가 데이터를 사용하는 다대다 관계와 연결하려는 경우에 사용됨
- symmetrical
- Default : True
- ⇒ 예를 들어 내가 친구라면 상대도 자동적으로 친구가 된다!
- ManyToManyField가 동일한 모델을 가리키는 정의에서만 사용한다.
- Default : True
Uploaded by N2T
반응형