Programming/데이터베이스

주 식별자 (Primary Key) 설계

Primary Key 설계

고려사항 목록

1. 유일하고 모든 레코드에 NOT NULL 일 수 있는 컬럼을 찾는다.

 

2. 후보 식별자가 없는 경우 임의의 식별자를 만들어 부여한다. (인조 식별자)

 

3. PK의 데이터 타입을 결정한다.

  1) 레코드의 발생 가능한 최대 수를 예측한다.

  • 예) 1년에 몇개 정도 발생하는가? 한 달에 몇개 정도 발생하는가?
  • 처리해야 하는 대상이 대략 몇개정도 되는가?

4. 발생 가능한 최대 레코드 수를 커버할 수 있는 데이터 타입을 선정한다.

  1) 만일 대상 레코드가 수십 만개 정도라면 999,999로 커버할 수 있다.

    따라서 32bit int(2,147,483,647)를 사용할 수 있다.

    varchar(6)을 사용해서 '999999' 까지 처리할 수 있다.

 

5. PK의 데이터 타입 후보를 대상으로 다음을 고려한다.

  1) int 등 숫자를 PK로 채택할 경우 자동 증분 속성을 사용할 수 있다.(편리함)

  2) String을 사용하면 숫자가 아닌 문자를 섞어서 PK값에 의미를 부여할 수 있다.

  3) 특별한 의미를 부여할 필요가 없을 경우 정수형을 사용하는 것이 바람직하다.

 

6. PK는 고유 식별자 기능으로 충분하다.

  즉, PK는 NOT NULL, UNIQUE 속성만을 갖는 것으로 충분하다. PK 값에 어떤 의미를 부여하는 것은 나중에 부담이 된다.

 

'Programming > 데이터베이스' 카테고리의 다른 글

[PostgreSQL] json, jsonb 타입과 연산자  (0) 2024.01.21
M:N 관계  (0) 2021.07.21
1:M 재귀적 관계  (0) 2021.07.20
1:M 관계  (0) 2021.07.20
관계형 데이터베이스(RDBMS), 주식별자와 후보식별자  (0) 2021.07.17