# DDL 검토 체크리스트

## 공통

- 모든 CREATE TABLE이 파싱되는지 확인한다.
- 테이블·컬럼 물리명이 논리 설계와 일치하는지 확인한다.
- 타입, 전체 길이, 소수점 길이를 표준도메인과 비교한다.
- PK의 단일성·NOT NULL·인덱스와 UNIQUE 제약을 확인한다.
- FK 대상 컬럼과 참조키 유일성, 로컬 인덱스, 삭제·갱신 정책을 확인한다.
- CHECK 허용값·범위, NULL 정책, 인용 식별자와 스키마를 기록한다.

## 방언

- SQLite: `INTEGER PRIMARY KEY`, 인라인 제약과 SQLite 타입 친화성을 확인한다.
- PostgreSQL: schema-qualified 이름, `GENERATED`, identity, enum과 quoted identifier를
  확인한다.
- MySQL: backtick 식별자, `AUTO_INCREMENT`, unsigned, engine/charset을 확인한다.
- Oracle: quoted identifier, `NUMBER(p,s)`, sequence/trigger, schema와 파티션을 확인한다.

방언 문법을 다른 DB의 문법으로 바꾸어 검증하지 않는다. 파서 제한으로 확인할 수 없는
항목은 오류로 단정하지 말고 `확인 필요`로 표시한다.
