Skip to main content

제약조건

한눈에 보기

제약조건은 데이터 입력 규칙입니다. "이 항목은 반드시 입력하세요(NOT NULL)", "중복 값은 안 됩니다(UNIQUE)" 같은 규칙을 설정하면, 잘못된 데이터가 저장되는 것을 미리 방지합니다.

소개

테이블에 컬럼을 추가할 때, 단순히 타입만 지정하는 것이 아니라 제약조건도 함께 설정할 수 있습니다. 제약조건은 데이터의 정확성과 일관성을 보장하는 규칙입니다.

예를 들어, 품목코드가 중복되면 안 되므로 UNIQUE 제약을 걸고, 품목명은 반드시 입력해야 하므로 NOT NULL 제약을 겁니다.

제약조건 종류 한눈에 보기

제약조건의미양식에서 모습위반 시
PK (Primary Key)행의 고유 식별자자동 생성, 수정 불가-
NOT NULL반드시 입력필드 옆에 * 표시"필수 항목입니다" 오류
UNIQUE중복 불가일반 입력 필드"이미 존재하는 값입니다" 오류
DEFAULT기본값 설정미리 채워진 값-
SYSTEM_REF시스템 참조사용자/부서 드롭다운-

제약조건별 상세 설명

PK (Primary Key) - 기본키

모든 테이블에는 각 행을 구분하는 기본키(PK) 가 필요합니다. VEXPLOR에서는 id 컬럼이 UUID 타입의 PK로 자동 생성됩니다.

  • 사용자가 별도로 설정할 필요 없습니다
  • 시스템이 자동으로 고유한 값을 부여합니다
  • 화면에 표시하지 않아도 됩니다

NOT NULL - 필수 입력

컬럼에 NOT NULL 제약을 설정하면, 해당 항목은 반드시 입력해야 합니다. 빈 값으로 저장할 수 없습니다.

NOT NULL 양식 화면

NOT NULL이 설정된 컬럼은 양식에서 레이블 옆에 빨간색 별표(*)가 표시됩니다. 입력하지 않고 저장하면 오류 메시지가 나타납니다.

설정 방법:

  1. 테이블 노드의 속성 패널에서 해당 컬럼을 선택합니다
  2. "필수" 또는 "NOT NULL" 옵션을 활성화합니다

양식에서 이렇게 보입니다:

저장

실무 활용:

  • 품목코드, 품목명: 반드시 있어야 하는 정보 → NOT NULL
  • 비고, 설명: 없어도 되는 정보 → NOT NULL 해제

모든 컬럼에 NOT NULL을 거는 것은 좋지 않습니다. 정말 필수인 항목에만 설정하세요. 너무 많은 필수 항목은 사용자의 데이터 입력을 불편하게 합니다.

UNIQUE - 중복 불가

컬럼에 UNIQUE 제약을 설정하면, 같은 값을 두 번 입력할 수 없습니다. 이미 존재하는 값을 다시 입력하면 오류가 발생합니다.

UNIQUE 위반 오류

이미 존재하는 품목코드를 입력하면 "이미 존재하는 값입니다" 오류 메시지가 나타납니다.

설정 방법:

  1. 테이블 노드의 속성 패널에서 해당 컬럼을 선택합니다
  2. "고유" 또는 "UNIQUE" 옵션을 활성화합니다

실무 활용:

  • 품목코드: 품목마다 고유해야 함 → UNIQUE
  • 사업자번호: 거래처마다 고유해야 함 → UNIQUE
  • 사원번호: 직원마다 고유해야 함 → UNIQUE
주의

UNIQUE 제약은 NULL 값에는 적용되지 않습니다. 즉, 빈 값은 여러 개 허용됩니다. 중복을 완전히 방지하려면 NOT NULL + UNIQUE를 함께 설정하세요.

DEFAULT - 기본값

컬럼에 DEFAULT를 설정하면, 사용자가 값을 입력하지 않았을 때 자동으로 채워지는 값을 지정할 수 있습니다.

DEFAULT 양식 화면

DEFAULT가 설정된 컬럼은 양식에서 미리 값이 채워져 있습니다. 사용자가 수정할 수 있습니다.

타입기본값 예시설명
VARCHAR"미분류"텍스트 기본값
INT0숫자 기본값
DECIMAL0.00소수 기본값
BOOLEANtrue 또는 false참/거짓 기본값
DATECURRENT_DATE오늘 날짜 자동 입력
TIMESTAMPCURRENT_TIMESTAMP현재 시각 자동 입력
ENUM첫 번째 항목목록의 첫 번째 값

실무 활용:

  • 주문상태 기본값: "작성" (새 주문은 항상 "작성" 상태로 시작)
  • 등록일자 기본값: CURRENT_DATE (오늘 날짜 자동 입력)
  • 수량 기본값: 1 (최소 1개)
  • 사용여부 기본값: true (새로 등록하면 기본 사용)

SYSTEM_REF - 시스템 참조

SYSTEM_REF는 VEXPLOR에서 제공하는 특별한 제약조건으로, 시스템에 등록된 사용자나 부서를 참조할 수 있게 합니다.

자세한 내용은 SYSTEM_REF 참조 문서를 참고하세요.

제약조건 조합 예시

실무에서 자주 사용하는 제약조건 조합을 보여드립니다.

품목 마스터 테이블

컬럼명타입NOT NULLUNIQUEDEFAULT
idUUIDO (자동)O (자동)자동 생성
품목코드VARCHAROO-
품목명VARCHARO--
분류ENUMO-"미분류"
단가DECIMAL--0
사용여부BOOLEANO-true
비고TEXT---

발주서 테이블

컬럼명타입NOT NULLUNIQUEDEFAULT
idUUIDO (자동)O (자동)자동 생성
발주번호VARCHAROO자동채번
발주일자DATEO-CURRENT_DATE
상태ENUMO-"작성"
비고TEXT---

자주 묻는 질문

Q: NOT NULL과 UNIQUE를 동시에 설정할 수 있나요? A: 네, 품목코드처럼 반드시 입력해야 하고 중복도 안 되는 컬럼에 함께 설정합니다.

Q: 기본값을 설정하면 사용자가 변경할 수 없나요? A: 아닙니다. 기본값은 초기값일 뿐, 사용자가 자유롭게 변경할 수 있습니다.

Q: 배포 후에 제약조건을 추가/변경할 수 있나요? A: 가능합니다. 다만, 기존 데이터가 새 제약조건을 위반하는 경우 오류가 발생할 수 있으므로 데이터를 먼저 정리한 후 변경하세요.

Q: NOT NULL을 설정했는데 빈 값으로 저장이 되는 경우는? A: DEFAULT 값이 설정되어 있으면, 사용자가 입력하지 않아도 기본값으로 저장됩니다.

다음 단계