Django 모델 관계에 대한 이해 - 양방향 참조와 단방향 참조

2023. 5. 23. 11:43· Django/DRF
목차
  1. 양방향 참조
  2. 단방향 참조
  3. 양뱡향 참조 vs 단방향 참조
반응형

양방향 참조와 단방향 참조는 Django의 모델 간의 관계 설정에서 중요한 개념이다. 이들은 모델 간의 사용 작용과 정보 접근에 영향을 미치며 적절한 관계 설정을 통해 데이터 베이스의 구조와 동작을 효과적으로 설계할 수 있다.

 

 

양방향 참조

양방향 참조는 두 개의 모델이 서로 참조하는 관계로 모델 A를 통해서 모델 B에 접근 할 수 있고 모델 B를 통해서 모델 A에 접근 할 수 있다. 이러한 양뱡항 참조를 통해서 두 모델은 상호 작용하고 정보에 접근할 수 있다.

 

예를 들어, 사용자(User)와 사용자 프로필(UserProfile)이라는 두개의 모델을 가지고 있다고 가정하면 사용자 모델은 사용자 프로필을 참조한다. 반대로 사용자 프로필 모델 역시 사용자 모델을 참조한다. 이렇게 설정된 양방향 참조는 사용자와 사용자 프로필 간의 관계를 쉽게 구성하고, 각 모델에서 다른 모델로의 접근을 편하게 해 준다.

 

Django에서 양뱡향 참조를 설정하기 위해서 외래키 또는 원투원필드를 사용한다.

 

 

단방향 참조

단방향 참조는 A라는 모델이 B라는 모델로 접근이 가능 하지만 반대로 B라는 모델에서는 A라는 모델로 접근할 수 없다.

 

예를 들어, 포스트(Post)와 댓글(Comment)이라는 두 개의 모델을 가지고 있다고 가정해 보면 포스트 모델은 댓글을 참조하지만 댓글 모델은 포스트 모델을 참조하지 않는다. 이러한 경우 포스트 모델을 통해서 댓글을 접근할 수 있지만 댓글을 통해서 포스트로 접근할 수 없다.

 

Django에서 단방향 참조를 설정하기 위해서 외래키를 사용한다

 

 

양뱡향 참조 vs 단방향 참조

양방향 참조와 단방향 참조는 모델 간의 관계를 설정하는 방식에 따라 결정된다. 양방향 참조는 두모델이 서로를 참조하여 상호 작용하고 정보에 접근할 수 있도록 만들어 주고 단방향 참조의 경우 한 모델이 다른 모델을 참조하지만, 그 역은 성립하지 않는 관계이다.

 

참조 방식은 데이터 베이스의 구조와 애플리케이션의 요구사항에 따라 달라진다. 양방향 참조의 경우는 모델간의 관계가 상호적이고 의존적일 때 유용하고 단방향 참조는 한 모델이 다른 모델을 참조하면 되는 간단한 관계에서 유용하다.

 

관계 설정은 애플리케이션의 확장성과 유지보수에 중요한 역할을 하기 때문에 모델 간의 관계를 설정할 때는 데이터 구조와 요구사항을 고려하여 적절한 참조 방식을 선택하는 것이 좋다.

반응형
저작자표시 (새창열림)

'Django > DRF' 카테고리의 다른 글

클라우드 타입으로 Django, postgreSQL 서버 배포  (1) 2023.08.09
Django의 OneToOneField와 ForeignKey의 차이점  (0) 2023.05.23
Django 추상화 클래스  (0) 2023.05.11
Django에서 루트파일 밑에 test파일을 만드는 이유  (0) 2023.05.11
Django 소셜로그인 구현 / 카카오톡  (0) 2023.05.08
  1. 양방향 참조
  2. 단방향 참조
  3. 양뱡향 참조 vs 단방향 참조
'Django/DRF' 카테고리의 다른 글
  • 클라우드 타입으로 Django, postgreSQL 서버 배포
  • Django의 OneToOneField와 ForeignKey의 차이점
  • Django 추상화 클래스
  • Django에서 루트파일 밑에 test파일을 만드는 이유
Jong_seoung
Jong_seoung
기록하자, 머리는 생각하는 곳이지 저장장치가 아니다.
반응형
Jong_seoung
Today_developStory
Jong_seoung
전체
오늘
어제

블로그 메뉴

  • Home
  • Git Hub
  • 분류 전체보기 (351)
    • Theory (16)
    • Java (3)
      • 알고리즘 (2)
      • 문법 (0)
    • Spring (7)
      • 스프링 입문 (6)
      • PickTalk (0)
      • 에러처리 (1)
    • Python (80)
      • 알고리즘 - 이론 (17)
      • 알고리즘 - 내장함수, 라이브러리 등등 (3)
      • 알고리즘 - 백준 (53)
      • 나도코딩 정리 (2)
      • 기타 (5)
    • Django (159)
      • DRF (105)
      • 인프라 (46)
      • DataBases (2)
      • API Docs (6)
    • FrontEnd (22)
      • htmx (2)
      • React (8)
      • 자바스크립트 (12)
    • GIT (16)
    • 기타 (8)
      • 정리 (2)
      • Flutter (1)
      • 마이크로프로세서 - ATmega128 (2)
      • 개발환경 세팅 (3)
    • 자격증 (37)
      • 정보처리기사 (19)
      • SQLD자격증 (18)

인기 글

최근 글

태그

  • alarm
  • BFS
  • CSRF
  • Django
  • django channels
  • django sse
  • django tutorial
  • django 배포
  • django 스웨거 적용
  • Django 이미지 저장

최근 댓글

hELLO · Designed By 정상우.v4.3.0
Jong_seoung
Django 모델 관계에 대한 이해 - 양방향 참조와 단방향 참조
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.