>source

프런트 엔드에 사용자 등록을위한 입력 양식이 있다고 가정 해 보겠습니다. 사용자는 전체 이름 또는 회사 이름으로 가입 할 수 있습니다. 이 시나리오에서 null 데이터 유형을 처리하는 가장 좋은 방법은 무엇입니까? 데이터 유형이 NOT NULL 무언가의 기본값으로? 모든 사용자가 등록 할 때 전체 이름과 회사 이름을 함께 사용하지 않는 경우가있을 수 있습니다.

CREATE TABLE customer(
    company_name VARCHAR(255),
    full_name VARCHAR(255)
)

  • 답변 # 1

    null 일반적으로 데이터의 부재를 나타내는 방법입니다. 설명하는 시나리오에서는 기본값을 사용하는 것이 도움이되지 않는 것 같습니다.

    그런 다음 : 열은 기본적으로 nullable입니다. 두 열 중 하나 이상이 null이 아니어야한다는 규칙을 적용하려면 검사 제약 조건을 사용할 수 있습니다. 직렬 기본 키를 테이블에 추가하는 것도 좋은 생각입니다.

    create table customer(
        customer_id serial primary key,
        company_name varchar(255),
        full_name varchar(255),
        check (company_name is not null or full_name is not null)
    );
    
    

  • 이전 java - Tomcat 9에서 하위 폴더로 URL 설정
  • 다음 sql - mysql 및 vbnet에서 IN 연산자로 매개 변수 명령을 사용하는 방법