ERD 산출
가장 기본적인 회원과 CRUD에 대한 ERD를 산출해 봤습니다.
백엔드를 제가 한 번도 사용해보지 않은 Nest.js를 사용해서 구축할 것이기 때문에 최소한의 테이블만 정의했습니다.
기능이 늘어나는 데로 ERD를 수정하며 개발하려고 합니다.
새로 알아가는 사실
TimeStamp vs DateTime
TimeStamp와 DateTime 둘 다 같은 형식(YYYY-MM-DD HH:MM:SS)을 보여서 어떤 자료형을 선택할지 고민이 됐습니다.
그래서 TimeStamp와 DateTime의 차이를 찾아봤습니다.
TIMESTAMP
- UNIX timestamp
- 4바이트
- 표현 범위 : 1970-01-01 00:00:01 ~ 2038-01-1903:14:07
- time zone에 따라감
- 저장 시 UTC 시간으로 변환해서 저장
- index가 빠르게 생성됨
DATETIME
- native MySQL
- 8바이트
- 표현 범위 : 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
DB를 여러 개를 운용할 때 TIMESTAMP를 사용하면 시간은 절댓값으로 저장을 할 수 있다는 장점이 있다고 합니다.
단, TIMESTAMP는 record가 변화된 시간을 기록하기 위해 존재하는 것이어서 특정 시간을 저장하고 싶으면 datetime을 사용하라고 합니다.
추가적으로 MySQL 8.0.19 버전부터는 DATETIME도 time zone offset을 지원하므로 TIMESTAMP를 사용할 이유가 적어졌다고 합니다.
참조
'사이드 프로젝트 > Loft' 카테고리의 다른 글
[Loft] 개발자를 위한 블로그 기획하기 (0) | 2025.03.17 |
---|