article/models.py 설계
1. 데이터베이스 용어 정리
RDBMS(RDB) : Relational DataBase Management system의 약자로 MySql, OracleDB 등 관계형 데이터베이스를 지칭한다.
Sql : Structured Query Language의 약자로 데이터베이스의 CRUD를 위해 사용되는 언어이다.
CRUD : Create(생성), Read(읽기), Update(갱신), Delete(삭제)
NoSql : Not Only Sql의 약자로 관계형 데이터베이스가 아닌 다른 형태로 데이터를 저장하며, mongoDB 등이 여기에 해당한다.
Table : DB는 기본적으로 테이블로 이루어져 있으며, 필드와 레코드가 존재한다.
django에서는 아래와 같이 사용되며, 레코드는 django에서 object라는 이름으로 사용된다.
키 종류
FK : Foreign Key의 약자이며, 다른 테이블을 참조 할 때 사용된다.
UK : Unique Key의 약자이며, 중복 값을 허용하지 않는다.
PK : Primary Key의 약자이며, 테이블에서 반드시 존재해야 한다.
PK는 두개 이상 존재 할 수 없고, UK와 마찬가지로 중복 값을 허용하지 않는다.
Foreign Key를 사용할 경우 참조 할 테이블의 PK를 바라본다.
2. django 프로젝트 구조에 대한 이해
settings.py
django 프로젝트를 실행 할 때 해당 파일을 참조한다.
데이터베이스 설정, 앱 설정, 기본 정책 설정 등을 할 수 있다.
models.py
DB에 테이블을 추가하고 관리 할 때 사용된다.
테이블에 들어갈 필드, 필드의 속성값 등을 설정 할 수 있다.
python
manage.py
migrations / miarate 명령어를 통해 설정을 DB에 반영시킬 수 있다.
views.py
django 에서 request 데이터를 받은 후 처리 할 전반적인 로직이 들어간다.
urls.py에서 views에 있는 class나 함수를 호출해서 사용하게 된다.
urls.py
웹에서 django 프로젝트로 request를 전달 할 때 받아줄 경로를 설정할 수 있다.
ex)
http://my-django.project.com
/my/config/path/
3. DB 모델링 실습
django에서 제공해주는 다양한 필드의 속성을 사용해 DB 모델링 하기
code(
models.py
)
개념 정리
fk에서 사용되는 on_delete에는 여러 속성들이 있으며, 상황에 맞게 사용해야 한다.
DateField와 DateTimeField는 default 값을 여러 형태로 지정할 수 있다.