복수 테이블명, snake_case 컬럼명, 외래키는 대상 테이블을 드러낸다.
orders
order_items
customer_id
created_at
테이블과 컬럼 이름은 사람이 읽는 계약이다. 소문자와 밑줄을 기본으로 고정하면 SQL, ORM, 마이그레이션 문서가 같은 대상을 가리킨다.
복수 테이블명, snake_case 컬럼명, 외래키는 대상 테이블을 드러낸다.
orders
order_items
customer_id
created_at
예약어, 공백, 한글, 대소문자 혼합은 도구와 DBMS 이동에서 비용이 된다.
"OrderItem"
user
order
| DBMS | 인용하지 않은 이름 | 운영 규칙 |
|---|---|---|
| Oracle | 대문자로 접힘 | 혼합 대소문자 인용 식별자를 만들지 않는다 |
| PostgreSQL | 소문자로 접힘 | 소문자 snake_case로 그대로 조회되게 둔다 |
| MySQL | OS와 설정 영향을 받을 수 있음 | 배포 환경까지 소문자 테이블명으로 통일한다 |
핵심: 이름은 취향이 아니라 SQL과 코드, 운영 문서가 같은 객체를 안정적으로 가리키게 하는 규칙이다.