본문 바로가기

Python/Django

DB 모델링 설계

설계 순서

1) 필요한 컬럼들을 정의

2) 각 컬럼별 데이터 타입을 정의

 

 

- 키 종류

Primary Key (기본키) : 테이블 내의 데이터를 식별하는 값으로서, Django에서는 id가 디폴트로 지정되어있음

- 직접 지정하는 경우) id = models.AutoField(primary_key=True)

 

Foreignkey (외래키) : 특정 테이블에서 다른 테이블의 기본키를 참조하는 값

1) Many-to-Many

2) Many-to-One

3) One-to-One

 

지원하는 Field Types

- 공통인자 : Null=True/False => Nullable 여부

Fiedl Type Description
CharField  작은 문자열 또는 큰 문자열을 위한 스트링 필드
TextField 큰 문자열 필드
IntegerField 정수 필드
FloatField 실수 필드
BooleanField True / False 필드
DateTimeField 날짜와 시간을 가지는 필드
FileField 파일 업로드 필드
EmailField Email 유효성 검사를 지원하는 CharField
ImageField Image 파일 유효성 검사를 지원하는 FiledField의 파생클래스
DecimalField 소숫점을 갖는 필드
AutoField 1부터 자동으로 증가하는 필드 (=IntegerField)
DateField

파이썬 datetime.date 인스턴스로 표시되는 날짜 필드타입

class DateField(auto_now=False, auto_now_add=False, **options)

 

auto_now_add : 데이터가 처음 생성되어 저장할 때

auto_now : 데이터가 저장될 때 (update)

 

 

사용 예)

# 댓글 모델 => 유저와 Many-to-One 관계 (또는 One-to-Many)
class Comment(models.Model)
	user_name = models.CharField(max_length=30,...)
    	email = models.CharField(max_length=50,...)
    	content = models.TextField(max_length=200,...)

 

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

User 모델 확장  (0) 2020.03.19
Django 의 MTV 패턴  (0) 2020.03.19