테이블명 컬럼명 생성규칙
PostgreSQL에서 테이블과 컬럼 이름을 지을 때 지키면 좋은 **전표준 규칙(Naming Conventions)**을 정리해 드립니다.
이 규칙을 따르면 앞서 겪으신 쌍따옴표(" ") 문제에서 완전히 자유로워질 수 있습니다.
1. 핵심 원칙: 소문자 + 스네이크 케이스
가장 중요한 대원칙은 모든 식별자를 소문자로 작성하고, 단어 사이는 언더바(_)로 연결하는 것입니다.
- 권장:
user_profile,order_item_list,created_at
비권장:
UserProfile(카멜 케이스),ORDERITEM(대문자 붙이기)
2. 테이블명 명명 규칙 (Table Naming)
- 소문자 사용: PostgreSQL의 자동 소문자 변환 기능을 활용하기 위해 반드시 소문자로 만듭니다.
- 복수형 vs 단수형: 팀마다 차이가 있지만, 현대적인 프레임워크(Laravel 등)는 복수형을 선호합니다.
- 예:
users,products,orders
- 예:
- 의미 중심: 테이블의 역할을 명확히 알 수 있게 짓습니다.
- 예:
posts(게시글),post_comments(게시글 댓글)
- 예:
접두사(Prefix) 지양: 과거에는
tbl_users처럼 앞에tbl_을 붙였으나, 최근에는 가독성을 위해 생략하는 추세입니다.
3. 컬럼명 명명 규칙 (Column Naming)
- 기본키(PK): 단순히
id라고 하거나, 테이블명을 포함해user_id라고 합니다. (조인할 때user_id가 더 직관적입니다.)
- 날짜 관련:
- 생성일:
created_at - 수정일:
updated_at - 특정 날짜:
published_date(접미사에_at은 일시를,_date는 날짜만 의미하도록 구분하면 좋습니다.)
- 생성일:
- 불리언(Boolean) 값:
is_,has_등의 접두사를 사용하여 상태를 나타냅니다.- 예:
is_active,has_image,is_deleted
- 예:
4. 피해야 할 이름 (Reserved Words)
PostgreSQL의 예약어는 가급적 이름으로 쓰지 마세요. 만약 쓰게 된다면 반드시 쌍따옴표(" ")가 강제됩니다.
피해야 할 이름 | 권장하는 대체 이름 |
|---|---|
|
|
|
|
|
|
|
|
|
|
5. 요약 테이블
구분 | 규칙 | 예시 (Good) | 예시 (Bad) |
|---|---|---|---|
케이스 | 스네이크 케이스 (snake_case) |
|
|
언어 | 영문 소문자 |
|
|
특수문자 | 언더바( |
|
|
길이 | 63바이트 이하 (Postgres 제한) |
| 너무 길면 잘림 |
[ Tips ]
이미 대문자로 만들어진 CL_PR_SUM 테이블을 앞으로 편하게 쓰고 싶으시다면, 아래 명령어로 한 번만 이름을 바꿔주세요.
-- 테이블명 변경
ALTER TABLE "CL_PR_SUM" RENAME TO cl_pr_sum;
-- 컬럼명도 대문자가 있다면 변경 (예시)
ALTER TABLE cl_pr_sum RENAME COLUMN "USER_ID" TO user_id;