[django]간단한 DB 개념 정리!

dhleeone·2021년 12월 31일
0

간단한 DB 개념 정리!

데이터 모델이란?

우리 프로젝트의 어떤 데이터 모델을 저장할 것인지에 대한 데이터 명세서이자 구조

  • Order 테이블의 주문자 필드는 user 테이블을 참조한다.
    - 이때 주문자는 외래키(Foreign Key)가 된다.

  • 한명의 user는 여러개의 주문이 가능하지만, 하나의 주문은 여러명이 할 수 없다.
    - User와 Order의 관계는 1:다 의 관계이다.


    <추가 관계 예시>
    공동 저자인 경우 Authors <-> Books다:다 관계
    sns에서 User끼리 팔로우하는 경우 User <-> User다:다 관계 (내가 여러명의 유저를 팔로우할 수 있고, 여러명의 유저가 나를 팔로우할 수 있으므로)
class User(AbstractUser):
    GENDER_CHOICES = [
        ('M', 'Male'),
        ('F', 'Female'),
        ('C', 'Custom'),
    ]
    name = models.CharField(_("Name of User"), blank=True, max_length=255)
    user_name = models.CharField(blank=True, max_length=255)
    profile_photo = models.ImageField(blank=True)
    website = models.URLField(blank=True)
    bio = models.TextField(blank=True)
    email = models.TextField(blank=True, max_length=255)
    phone_number = models.CharField(blank=True, max_length=255)
    gender = models.CharField(blank=True, choices=GENDER_CHOICES, max_length=255)
    followers = models.ManyToManyField("self")
    following = models.ManyToManyField("self")

다음 django에서 ManyToManyField("self")를 통해 User 내에서 팔로워, 팔로잉을 다:다 관계로 만들 수 있다.


[참고] 명준MJ - django로 만드는 instagram (#3 데이터 모델(테이블) 만들기, db 설명)

profile
하루하루 쌓아가는 개발 지식📦

0개의 댓글