컬럼 정의 — 기본
컬럼 정의
{
"name": "item_code",
"displayName": "품목코드",
"type": "VARCHAR",
"constraints": ["NOT_NULL", "UNIQUE"],
"defaultValue": null,
"enumValues": null,
"fkRef": null,
"systemRef": null
}
컬럼 필드 명세
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
name | string | 필수 | 컬럼명 (snake_case, 영문) |
displayName | string | 필수 | 한글 표시명 |
type | ColumnType | 필수 | 데이터 타입 |
constraints | string[] | 필수 | 제약조건 배열 (빈 배열 가능) |
defaultValue | string|null | 선택 | 기본값 (문자열로 표현) |
enumValues | string[]|null | 조건부 | type: "ENUM" 일 때 필수 |
fkRef | object|null | 조건부 | constraints에 "FK" 포함 시 필수 |
systemRef | string|null | 조건부 | constraints에 "SYSTEM_REF" 포함 시 필수 |
description | string | 선택 | 상세 설명 |
locked | boolean | 선택 | 사용자 삭제 불가 컬럼 |
isComputed | boolean | 선택 | 자동 계산 컬럼 여부 (DTO 제외, 읽기 전용) |
computedConfig | object|null | 조건부 | isComputed: true 일 때 필수 — 계산 설정 |
supportsAutoNumbering | boolean | 선택 | 자동 채번 대상 컬럼 (읽기 전용, 패턴 기반 생성) |
데이터 타입 (ColumnType)
| 타입 | PostgreSQL | 용도 | 예시 |
|---|---|---|---|
VARCHAR | varchar(255) | 짧은 텍스트 (코드, 이름, 번호) | 품목코드, 거래처명 |
TEXT | text | 긴 텍스트 (비고, 설명, 메모) | 특이사항, 작업내용 |
INT | integer | 정수 (수량, 순서, 횟수) | 생산수량, 정렬순서 |
BIGINT | bigint | 큰 정수 | 시리얼넘버 |
DECIMAL | decimal | 소수 (금액, 무게, 비율, 치수) | 단가, 무게, 불량률 |
BOOLEAN | boolean | 참/거짓 | 사용여부, 승인여부 |
DATE | date | 날짜 (시간 없음) | 납기일, 생산일 |
TIMESTAMP | timestamp | 일시 (날짜+시간) | 시작시각, 완료시각 |
UUID | uuid | 고유 식별자 (FK용) | 품목ID, 거래처ID |
ENUM | varchar + CHECK | 열거형 (고정 선택지) | 상태, 유형, 등급 |
FILE | jsonb | 파일 첨부 | 도면, 사진, 문서 |
JSON | json | JSON 데이터 | 설정값, 메타데이터 |
JSONB | jsonb | 검색 가능 JSON | 검사항목, 속성맵 |
제약조건 (Constraints)
| 제약 | 설명 | 조합 규칙 |
|---|---|---|
NOT_NULL | 필수 입력 (NULL 불가) | 모든 타입과 조합 가능 |
UNIQUE | 고유값 (중복 불가) | 보통 NOT_NULL과 함께 사용 |
FK | 외래키 | 반드시 fkRef 함께 정의 |
SYSTEM_REF | 시스템 테이블 참조 | 반드시 systemRef 함께 정의 |
PK | 기본키 | 직접 사용 금지 (id는 자동 생성) |
INDEX | 인덱스 | 검색 성능 최적화 |
ENUM 정의
{
"name": "status",
"displayName": "상태",
"type": "ENUM",
"constraints": ["NOT_NULL"],
"enumValues": ["대기", "진행중", "완료", "취소"],
"defaultValue": "대기"
}
type: "ENUM"일 때enumValues필수- 값은 한글 사용 (UI에 직접 표시됨)
defaultValue는enumValues중 하나
이전: 테이블 정의 | 다음: 컬럼 정의 (고급)