회원테이블 설계중인데 pk를 회원아이디로 해야되는건가요? 아니면 자동증값으로 해야되는건가요? 0 6 2,718

by 상똥이 [SQLServer] [2020.03.10 15:47:54]


안녕하세요.

회원 테이블을 설계하고 있는데 기본키를 어떤걸로 설정해야 되는지

고민이 됩니다. 어떤분이 얘기하는것을 들었는데 회원 아이디를 pk로 

하지말고 identity 증가값을 저장하는 컬럼을 만든뒤 그것을 pk로 

하라고 하셨는데 아래처럼 만들어도 되는건가요?

만약 이렇게 해야 되는거면 회원아이디는 unique 설정하면 되는건가요?

답변 부탁드립니다.

 

[회원 테이블]

memberID int identity(1,1) not null primary key,

memberName nvarchar(30) not null,

memberUserID nvarchar(20) not null ......

 

by 아발란체 [2020.03.10 17:43:09]

사원번호, 회원아이디, 이메일 주소처럼 개인을(레코드를) 유일하게 구분하는 값이 있는 경우

별도 증가값을 PK로 만든다는 것은 일반적이지 않는 것 같습니다. 

 

올려주신 회원테이블 스크립트만 보면 기본키(Primary key)가 지정이 되어 있어 자동으로 Unique Key로 생성이 됩니다.

스크립트는 무엇이 잘못 되었다 말하기 어려운 것 같습니다.


by 상똥이 [2020.03.10 18:47:01]

답변 감사합니다!


by 마농 [2020.03.10 18:14:00]

1. 물리적 관점에서
- 오라클의 경우엔 굳이 시퀀스를 사용할 필요는 없습니다.
- 하지만, MSSQL 의 클러스터 인덱스 구조를 고려한다면? identity 사용을 고려할 수 있습니다.
2. 논리적 관점에서
- 사용자ID 의 변경이 허용된다면? identity 사용을 고려할 수 있습니다.


by 상똥이 [2020.03.10 18:49:48]

답변 감사합니다. 제가 잘 이해가 안가서 그러는데, 혹시 memberID를 identity에 기본키로 설정하고 memberUserID는 unique 설정 안해도 되는건가요? memberUserID에 중복되는 값이 들어가면 안될것 같아서요. 그리고 현업에서도 제가 하는 방식으로 많이 사용하나요?


by 우리집아찌 [2020.03.10 21:40:34]

memberID가 변경가능하다.    -> pk는 인조키

memberID가 변경불가능하다 -> pk는 memberID 

업무적 요건에 따라서 달라집니다.  


by 마농 [2020.03.10 23:10:29]

업무적인 관점에서 스스로 판단하시면 됩니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입