Backend/Django

[Django] CharField와 TextField의 차이점이 뭔가요?

에반황 2019. 1. 9. 18:34

Django에서 CharField와 Texfield의 차이점이 뭔가요?

documentation 에서는 CharField() 는 작은 문자열을 사용해야하고, TextField()는 큰 문자열을 사용해야한다고 합니다. 그렇다면, 작고 크다의 기준은 몇 글자인건가요??


답변

이 것은 RDBMS의 차이점입니다.

  • varchar 타입

    • 이것은 최대 길이를 명시하고 사용합니다. 그리고 최적화와 저장 공간에 더 효율적입니다.

  • text 타입

    • 이것은 최대 길이가 DB schema에 의해 지정되지 않습니다.

PostgreSQL 9은 특히 "두 타입에는 퍼포먼스 차이가 없다." 라고 말하고 있습니다. MySQL에는 조금의 차이가 있다고는 합니다. 즉 이는 Django Model의 스펙 뿐은 아닌 것입니다.

다음과 같은 룰을 정해서 사용하면 좋겠습니다.

  • CharField

    • 최대 길이 정의가 필요한 타입

  • TextField

    • 그 외



유용한 댓글

나는 django에 있는 두 가지 사이의 정말 중요한 차이점은 뷰가 필드를 어떻게 다룰 것인가에 있다고 생각합니다. generic edit view에서 TextField는 다중 행 크기 조정 가능한 입력으로 렌더링되며, CharField는 단일 라인 입력입니다.


참고

해당 질문은 Stackoverflow에서 가져왔습니다.

반응형