물리적 모델링의 중요한 산출물 중 하나가 **테이블 정의서(Table Definition Document)**이다.
테이블 정의서는 각 테이블에 대해 다음과 같은 정보를 표 형태로 정리한 문서이다.
NOT NULL 여부이 문서는 개발자, DBA, 기획자, 운영자가 모두 공유하는 데이터 사전 역할을 한다.
간단한 회원 테이블 정의서를 예시로 살펴본다.
테이블 정보
member컬럼 정의 (예시)
| 컬럼 물리명 | 컬럼 논리명 | 데이터 타입 | PK | FK | NN | 기본값 | 설명 |
|---|---|---|---|---|---|---|---|
member_id |
회원 ID | BIGINT UNSIGNED | Y | Y | AUTO_INC | 회원을 식별하는 기본 키 | |
email |
이메일 | VARCHAR(255) | Y | 로그인과 알림에 사용하는 이메일 | |||
password |
비밀번호 | VARCHAR(255) | Y | 암호화된 비밀번호 해시 | |||
name |
이름 | VARCHAR(50) | Y | 회원 이름 | |||
birth_date |
생년월일 | DATE | 회원의 생년월일 | ||||
is_withdrawal |
탈퇴 여부 | TINYINT(1) | Y | 0 | 1이면 탈퇴한 회원 | ||
created_at |
가입 일시 | DATETIME | Y | CURRENT_TS | 회원 가입 시각 | ||
updated_at |
수정 일시 | DATETIME | 회원 정보 수정 시각 |
※ 실제 프로젝트에서는 컬럼 개수가 훨씬 많을 수 있고, 인덱스 정의, FK 제약 조건, 코멘트 등도 함께 기록한다.