inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

관계를 표현하는 모델 필드 (ForeignKey)

다대다관계 모델링에서는 ManyToManyField 속성의 필드 심는 위치의 기준/관습

해결된 질문

316

빅재미코딩

작성한 질문수 24

0

보통 다대다관계 모델링에서는 외래키를 두군데 다 심을 수 있는것인지? 그리고 보통 한군데에다가 심는다면 어디다가 심는지 기준이나 관습 궁금합니다.

그리고 다대다관계 일 경우는 외래키라고 안부르는거죠?

그냥 이럴땐 ManyToManyField 를 심는다 라고 하나요?

 

django

답변 1

1

이진석

안녕하세요.

M2M은 각 모델 상호 간의 Many 관계이므로, 두 모델 중 어느 한 쪽에라도 선언할 수 있습니다.
모든 일이 다 그러하지만, 모델링에도 정답이 없습니다. 꾸준히 의심하고 고민하고 개선할 뿐이죠.

1:N 관계는 models.ForeignKey 필드 만으로도 구현이 됩니다.
M2M 관계는 models.ManyToManyField 필드로 구현을 합니다. 내부 구현으로는 관계를 저장하는 별도의 테이블이 생성되고, 관계테이블에서는 두 모델에 대한 models.ForeignKey 필드가 정의됩니다. // 데이터베이스 테이블에서 M2M 관계를 어떻게 구현해야할까를 고민해보시면, 그 관계를 저장하는 중간 테이블이 꼭 필요하게 됩니다. (관련 장고 공식문서 : https://docs.djangoproject.com/en/4.2/ref/models/fields/#django.db.models.ManyToManyField.through)

각 관계에 대해서는 "관계를 맺는다" 라는 표현이 좀 더 적합하지 않을까 싶네요.

화이팅입니다. :-)

0

빅재미코딩

아~ 확인했습니다!

감사합니다!

안녕하세요.

0

49

1

[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?

0

275

1

useEffect 훅에서 else 유무에 따른 결과

0

211

1

useAxios 훅의 dependency array 설정

0

245

1

rest_framework.generics.CreateAPIView의 model 속성 유무

0

268

1

bootstrap4

0

471

4

리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요

1

365

1

admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법

0

574

3

useState는 필수일까요?

0

263

1

python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.

0

600

4

Django allauth를 사용한 소셜 로그인 시 에러

0

655

1

프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러

0

556

2

useLocalStorage() 함수 사용여부

0

229

1

django에 LOGIN_URL = '/accounts/login/'의 의미?

0

449

1

리듀서의 의미 재확인

0

430

1

simple-jwt Refresh Token 사용 노하우

0

899

2

docker compose 를 통한 배포 관련 오류 문의

0

672

1

파이썬 속도 장고 관련 궁금한게 있습니다.

0

365

1

is_like_user

0

233

1

related_name 오류

0

275

1

re_path 오류

0

259

1

re_path url

0

251

1

No post matches the given query

0

661

2

sendgrid 메일 발송이 안됩니다 ㅠㅠ

0

892

3