🔍 django의 충격적인 사실...
django에서 기본적으로 제공되는from django.contrib.auth.models import AbstractUser
AbstractUser는 username이 무조건 primary key로 인식된다. 왜 다른 개발자들이 django 기본 제공 user table을 상속받지 않고 사용하지 않는 지 알 것 같다.
필드 타입 | HTML 위젯 | 필수 옵션 | 설명 |
---|---|---|---|
BooleanField | CheckboxInput | - | True/False 값을 가지는 필드. |
CharField | TextInput | max_length | 문자열 데이터를 저장하는 필드. 최대 글자 수를 반드시 지정해주어야 한다. |
DateField | TextInput | - | datetime.date 인스턴스인 날짜 데이터를 저장하는 필드. 달력 위젯과 오늘 날짜 입력 기능을 기본제공한다. |
DateTimeField | TextInput | - | datetime.datetime 인스턴스인 날짜와 시간 데이터를 저장하는 필드 두 개의 TextInput, 달력 위젯, 오늘 날짜 입력 기능을 기본제공한다. |
FloatField | NumberInput | - | Python의 float과 같은 실수 데이터를 저장하는 필드. |
IntegerField | NumberInput | - | Python의 integer과 같은 정수 데이터를 저장하는 필드. -2147483648과 2147483647 사이의 값을 저장할 수 있다. |
TextField | Textarea | - | 글자 수 제한이 없는 문자열 데이터를 저장하는 필드. max_length 값을 지정하면 폼에서는 제한이 되지만, 데이터베이스에는 영향을 주지 않음. |
AutoField | Number | - | IntegerField와 같이 기본적으로는 동일하나, 자동적으로 장가하는 field 이며 1부터 시작하여 Primary 키를 테이블에서 따로 주지 않으면 해당 필드가 자동으로 만들어진다. Big은 1 to 9223372036854775807, Small은 1 to 32767 |
DecimalField | Decimal number | - | 고정 소수점 이하의 십진수 실수를 저장한다. python의 Decimal instance를 사용한다. |
프로젝트 진행중 데이터베이스에서 얼을 좀 타서 정리해 보았다.
예전에 DBMS 관련 자격증을 준비했는데 역시 사용하지 않으면 다 까먹는건 어쩔 수 없는겉가보다. DB를 안한지 2년이 넘어서 기본적인 sql문과 정규화는 물론이거니와 기본적인 key 형태들만 기억났었다...
개인 프로젝트를 하며 시간을 들여 꼼꼼하게 다시 정리해봐야 겠다.
필드 타입 | HTML 위젯 | 필수 옵션 | 설명 |
---|---|---|---|
Forignkey | - | to, on_delete | 필드를 외래키로 설정한다. 다른 테이블의 레코드와 일대다 관계를 형성한다. 관계 설정 대상이 되는 모델과 레코드 삭제 시 처리 방식을 필수로 설정해주어야 한다. |
ManytoManyField | - | to | 필드가 대상 테이블과 다대다 관계를 형성하도록 설정한다. 관계 설정 대상이 되는 모델을 필수로 설정해주어야 한다. |
OneToOneField | - | to, on_delete | 필드가 대상 테이블과 일대일 관계를 형성하도록 설정한다. 관계 설정 대상이 되는 모델과 레코드 삭제 시 처리 방식을 필수로 설정해주어야 한다. |
🔍 새벽까지해서 알고리즘을 할 시간이 전혀 없었다 ㅠㅠ
주말에 풀었던 문제들이 있으며 이번주는 시간이 난다면 이분탐색을 위주로 풀어볼 생각이다.
풀면 다시 올릴 예정!