데이터 분석 기술 블로그

DB에 대하여(2)_댓글 모델 구현 (feat. Django) 본문

DB

DB에 대하여(2)_댓글 모델 구현 (feat. Django)

데이터분석가 이채은 2024. 4. 17. 15:55

1. 댓글 모델 정의

ForeignKey() 클래스의 인스턴스 이름은 참조하는 모델 클래스 이름의 단수형으로 작성하는 것을 권장합니다. ForiegnKey 클래스를 작성하는 위치와 관계없이 외래 키는 테이블 필드 마지막에 생성됩니다.

# articles/models.py

class Comment(models.Model):
    article = models.ForeignKey(Article, on_delete=models.CASCADE)
    content = models.CharField(max_length=200)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(atuo_now=True)

2. ForignKey(to, on_delete)

to는 참조하는 모델 class 이름입니다.

on_delete는 외래 키가 참조하는 개체(1)가 사라졌을 때, 외래 키를 가진 객체(N)를 어떻게 처리할지를 정의하는 설정이고 이를 데이터 무결성이라고 합니다.


3. on_delete의 'CASCADE'

부모 객체(참조 된 객체)가 삭제 됐을 때 이를 참조하는 객체도 삭제됩니다.

https://docs.djangoproject.com/en/4.2/ref/models/fields/#arguments

 

Model field reference | Django documentation

The web framework for perfectionists with deadlines.

docs.djangoproject.com


4. Migration

댓글 테이블의 article_id 필드를 확인합니다.

참조하는 클래스 이름의 소문자(단수형)로 작성하는 것이 권장되었던 이유입니다. 

형식: '참조 대상 클래스 이름' + '_' + '클래스 이름'