Many to many relationships 2

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

DB

목록 보기
5/5
post-thumbnail

프로필 구현

팔로우

중개 테이블!!

  • 외래키 두개를 가진 중개 테이블
    User(M) - User(N)
  • 0명 이상의 회원은 0명 이상의 회원과 관련
  • 0명 이상의 팔로워를 가질 수 있고, 0명 이상의 다른 회원들을 팔로잉 할 수 있음

팔로우 기능 구현

설계도 새로 하는데 왜 migration 할 때 뭐 안떠?
중개 테이블을 만드는 것이라서
기존필드에 필드가 추가되는 개념이 아니다! 기존필드에 변화가 있는 것이아니라 테이블이 하나 더 생긴 것이다.

.exists()

  • QuerySet 에 결과가 포함되어 있으면 True를 반환하고

Django Fixtures

Fixtures

-Django가 데이터베이스로 가져오는 방법을 알고 있는 데이터 모음 -> 데이터베이스 구조에 맞추어 작성 되어있음

초기 데이터의 제공

fixtures 관련 명령어

  1. dumpdata : 생성(데이터베이스의 모든 데이터 추출)
  • 추출한 데이터는 json 형식으로 저장
  1. loaddata : Fixtures 데이터를 데이터베이스로 불러오기
  • Fixtures 파일 기본 경로
    - app_name/fixtures/

  • loaddata 순서 주의사항
    : 한방에 쓸때는 순서 상관없지만
    : 따로따로 할 때는 순서 신경써야함!!

  • 모든 모델을 한번에 dump 할 수도 있음

Fixtures 파일을 직접 만들지 말 것

  • 반드시 dumpdata 명령어를 사용하여 생성

Improve query

  • 같은 결과를 얻기 위해 DB측에 보내는 쿼리 개수를 점차 줄여 조회하기

annotate

  • 주석의 의미를 가지고 있음

  • SQL의 GROUP BY 쿼리를 사용

  • SQL의 INNER JOIN 쿼리를 활용
    -> 1:1 또는 N:1 참조 관계에서 사용
  • M:N 또는 N:1 역참조 관계에서 사용
    -> SQL이 아닌 Python을 사용한 JOIN을 진행
profile
나의 행복 만들기

0개의 댓글