테이블 생성 가이드
dictionary-api의 실제 테이블(t_board 등) 기준으로 정리한다. 마이그레이션 파일로 테이블을 만드는
방법(디렉토리 구조, 버전 채번)은 데이터 형상관리 가이드
참고 — 이 문서는 테이블/컬럼 설계 규칙에 집중한다.
컬럼명 규칙
Section titled “컬럼명 규칙”- 컬럼명은 소문자 스네이크 케이스로 쓴다(
board_id,photo_ph) — 애플리케이션 코드(Java 엔티티)의 camelCase(boardId,photoPath)와는 ORM(JPA@Column(name = "..."))이 매핑을 담당한다. Y/N플래그 컬럼(use_yn,admin_yn,lock_yn,guest_yn등)은VARCHAR(1)이 아니라CHAR(1)을 쓴다 — 값 길이가 항상 고정이라는 의미를 컬럼 타입에 그대로 드러내기 위함이다(저장 공간 차이는 길이 1 기준으로 무시할 수준).
공통 감사(audit) 컬럼
Section titled “공통 감사(audit) 컬럼”모든 테이블은 등록/수정 이력을 남기는 공통 컬럼 6개를 포함한다.
| No. | 컬럼명 | 데이터 타입 | 설명 |
|---|---|---|---|
| 1 | create_dt |
TIMESTAMP |
등록 일시 |
| 2 | create_user_id |
INTEGER |
등록자 ID |
| 3 | create_ip |
VARCHAR(40) |
등록 IP |
| 4 | update_dt |
TIMESTAMP |
수정 일시 |
| 5 | update_user_id |
INTEGER |
수정자 ID |
| 6 | update_ip |
VARCHAR(40) |
수정 IP |
create_dt TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시',create_user_id INTEGER NULL DEFAULT NULL COMMENT '등록 ID',create_ip VARCHAR(40) NULL DEFAULT NULL COMMENT '등록 IP',update_dt TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일시',update_user_id INTEGER NULL DEFAULT NULL COMMENT '수정 ID',update_ip VARCHAR(40) NULL DEFAULT NULL COMMENT '수정 IP',전체 생성 스크립트 예시
Section titled “전체 생성 스크립트 예시”CREATE TABLE IF NOT EXISTS t_board ( board_id BIGINT AUTO_INCREMENT NOT NULL COMMENT '게시물ID', title VARCHAR(200) NULL COMMENT '제목', content VARCHAR(1000) NOT NULL COMMENT '본문', create_dt TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '등록일시', create_user_id INTEGER NULL DEFAULT NULL COMMENT '등록 ID', create_ip VARCHAR(40) NULL DEFAULT NULL COMMENT '등록 IP', update_dt TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '수정일시', update_user_id INTEGER NULL DEFAULT NULL COMMENT '수정 ID', update_ip VARCHAR(40) NULL DEFAULT NULL COMMENT '수정 IP', PRIMARY KEY(board_id)) ENGINE=InnoDB ROW_FORMAT=DYNAMIC;
ALTER TABLE t_board COMMENT = '게시판';ALTER TABLE t_board AUTO_INCREMENT = 1000;