데이터베이스 키 종류
- FK : Foreign Key의 약자이며, 다른 테이블을 참조 할 때 사용된다.
- UK : Unique Key의 약자이며, 중복 값을 허용하지 않는다.
- PK : Primary Key의 약자이며, 테이블에서는 반드시 한개의 PK가 존재해야 한다.
- PK는 두개 이상 존재 할 수 없고, UK와 마찬가지로 중복 값을 허용하지 않는다.
- Foreign Key를 사용할 경우 참조 할 테이블의 PK를 바라본다.
http method 종류
- request를 보낼 때 어떤 용도의 요청을 보낼 지 선택하며, CRUD와 1:1 매칭
- GET : 데이터 조회(Read)
- POST : 데이터 생성(Create)
- PUT : 데이터 수정(Update)
- DELETE : 데이터 삭제(Delete)
모델링 할 때 자주 사용되는 field
시간
- DateField
- 날짜를 입력하는 필드 ex) 2002-01-01
- TimeField
- DateTimeField
- 날짜, 시간을 입력하는 필드 ex) 2002-01-01 09:31
- 옵션(공통)
- [선택] auto_now_add : True일 경우 데이터가 생성되는 순간을 기록한다. 데이터가 최초 생성되는 시간과 일치한다.
- [선택] auto_now : True일 경우 데이터가 저장될 때마다 갱신되며, 데이터 최초 생성 일 혹은 수정 시간이 기록된다.
문자
- CharField
- 문자열을 입력하는 필드 ex) 게시글 제목입니다.
- 옵션
- [필수] max_length : 입력 할 수 있는 최대 문자 수를 지정한다.
- [선택] choices : 특정 값만 입력될 수 있도록 선택지를 설정한다.
- TextField
- 개행 가능한 문자열을 입력하는 필드 ex) 게시글 내용입니다.
숫자
- IntegerField
- 숫자를 입력하는 필드 ex) -100, 100
- PositiveIntegerField
외래 키
- ForeignKey
- 1:n 혹은 n:1 관계 ex) 게시글의 작성자(User)를 나타내는 필드
- 옵션
- [필수] to : 관계를 맺을 테이블을 입력 ex) user.User
- [필수] on_delete : 관계를 맺을 데이터가 삭제됐을 때 해당 데이터의 처리 방법을 입력
- CASCADE : 해당 데이터도 같이 삭제합니다.
- SET_NULL : 해당 필드의 값을 null(None)로 설정합니다. 해당 옵션 선택 시 null=True 옵션을 설정해 줘야 합니다.
- OneToOneField
- 1:1 관계, ForeignKey(Unique=True)와 동일하다. ex) 사용자(User)와 사용자 개인정보(UserPrivateData)를 나타내는 필드
- 옵션 : ForeignKey와 동일
- ManyToManyField
- n:n 관계, 중간 테이블이 생성된다. ex) 사용자(User)와 취미(Hobby)를 나타내는 필드
기타
- FileField
- 파일을 업로드 하는 필드 ex) image.png
- BooleanField
공통옵션
- [선택] verbose_name : 해당 필드의 별칭을 지정한다.
- [선택] default : 해당 필드의 값을 지정하지 않았을 때 기본적으로 설정할 값을 입력한다.
- [선택] blank : 비어있는 스트링(””) 허용 여부를 지정한다.
- [선텍] null : null(None) 허용 여부를 지정한다.