본문 바로가기
TTL/1주차 ~ 4주차 TIL (8.29 ~ 9.23)

2022-09-23 TIL (Django의 데이터베이스 테이블간의 관계)

by dev_junseok 2022. 9. 25.

오늘은 장고의 데이터베이스 테이블간의 관계를 알아보겠습니다.

대표적으로 3개의 관계가 있습니다.

one-to-many

one-to-one

many-to-many

 

먼저 one-to-many 의 형태부터 알아보겠습니다.

보통 일반적으로 생각하는 글쓴이가 여러개의 글을 가지고 있고, 오직 글쓴이 만이 글에 접근할 수 있는 형태가 바로

one-to-many 입니다. (네이버, 페이스북, 트위터 등)   -- 글쓰기 모델

 

다음은  one-to-one 입니다. 대표적으로 프로필 기능을 예로 들수 있습니다.

보통 프로필은 그 사람 본인만 접근이 가능합니다.

 '데이터 A와 데이터 B'가 서로 만나서 중복이 되지 않는 값을 만들어 내는 것이 one-to-one 이라고 할 수 있습니다.

 

many-to-many는 A모델과 B모델이 있을 때 A가 여러 개의 B를 가질 수도 있고 B가 여러 개의 A를 가질 수도 있을 때 사용하는 모델입니다.    -- 팔로우, 팔로워 확인 기능

 

서로의 데이터를 다양하게 가질 수 있는 것이 바로 many-to-many 입니다

 

class MyTopping(models.Model):
    topping_name = models.CharField(max_length=100)

class MyPizza(models.Model):
    pizza_name = models.CharField(max_length=100)
    pizza_topping = models.ManyToManyField(MyTopping)

예를 들어서 피자와 토핑을 해보겠습니다.

피자는 여러개의 토핑을 가질 수 있습니다.

토핑은 여러개의 피자에 올라갈 수 있습니다.

 

 

위의 내용들은 외운다기 보다는 충분히 이해하고 나중에 개발할 때 아 이런 종류들이 있었지 하고 알아두는게 좋을 것 같습니다.

'TTL > 1주차 ~ 4주차 TIL (8.29 ~ 9.23)' 카테고리의 다른 글

2022-09-21 TIL (vscode Django 장고 개발환경 세팅하기 - windows, Linux, MacOs)  (0) 2022.09.22
2022-09-20 TIL  (0) 2022.09.21
2022-09-19 TIL  (0) 2022.09.20
2022-09-16 TIL  (0) 2022.09.18
2022-09-15 TIL  (0) 2022.09.16