Many to many relationships 1

뚝딱뚝딱·2023년 10월 16일
0

DB

목록 보기
4/5
post-thumbnail

Many to many relationships

한 테이블의 0개 이상의 레코드가 다른 테이블의 0개 이상의 레코드와 관련된 경우 => 양쪽 모두에서 N:1 관계를 가짐

의사와 환자 간 모델 관계 설정
1. python manage.py sheel_plus에서 의자, 환자 코드 예시 한줄씩 붙여넣기
2. 테이블 생성된 것 확인
3. N:1의 한계 상황

4.중계 모델

  • 예약 모델 생성 : 환자 모델의 외래 키를 삭제하고 별도의 예약 모델을 새로 생성

  • exit로 shell_plus 종료하고

  • db.sqlite3 랑 001_migarte된거 삭제(데이터베이스 초기화) 후 Migration 다시 진행 및 shell_plus 실행

  • 예약 데이터 생성 => ex_2코드

  • 예약 정보 조회

  • 추가 예약 생성

  • 예약 정보 조회 _ 1번 의사의 환자 2명 된거 조회 가능

  • Django 에서는 'ManyToManyField'로 중개모델을 자동으로 생성

Django ManyToManyField

  • 환자모델에 ManyToManyField 작성

  • 데이터베이스 초기화 후 Migration 진행 및 shell_plus 실행

  • 생성된 중개 테이블 hospitals_patient_doctors 확인

  • 예약 생성, 취소 진행하기

만약 예약 정보에 증상, 예약일 등 추가 정보가 포함되어야 한다면?

'through' argument

  • 중개 테이블에 '추가 데이터'를 사용해 M:N 관계를 형성하려는 경우에 사용

좋아요

Article(M) - User(N)

0개 이상의 게시글은 0명 이상의 회원

  • N:1에서의 역참조
    Article : User(N:1)
    user.article_set.all()
  • N:M에서의 역참조
    Article: User(N:M)
    user.article_set.all()

profile
나의 행복 만들기

0개의 댓글