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

  1. related_name
    • target model이 source model을 참조할 때 사용할 manager name
    • ForeignKey의 related_name과 동일한 역할
  1. through
    • 중개테이블을 직접 작성하는 경우, through 옵션을 사용하여 중개 테이블을 나타내는 Django 모델을 지정
    • 일반적으로 중개 테이블에 추가 데이터를 사용하는 다대다 관계와 연결하려는 경우에 사용됨
  1. symmetrical
    • Default : True
      • ⇒ 예를 들어 내가 친구라면 상대도 자동적으로 친구가 된다!
    • ManyToManyField가 동일한 모델을 가리키는 정의에서만 사용한다.

Uploaded by N2T

반응형