보통 이러한 유저 테이블을 만들 때 어떤식으로 pk를 정하는 것이 좋을까요? 0 2 1,014

by momo [DB 모델링/설계] 설계 테이블 [2021.07.24 17:42:11]


예를 들어 mysql에서 간단한 유저 테이블을 만들 때,

 

사용자의 이메일과 사용자의 이름 혹은 닉네임을 저장해야하는 테이블을 설계 해야 하는경우

어떤것을 primary key로 두고 설계하는 것이 좋을까요?
 

제 생각에는 사용자 이메일을 primary key로 두고 설계할 수 있겠지만, 나중에 하나의 이메일로 여러 사용자를 생성해야 하는 경우 등의 시스템 변경이 발생할 수 있기 때문에

uuid를 pk로 두고 설계하는 것이 좋다고 생각하였습니다.

그런데 uuid가 36개의 문자로 구성되어 있기 때문에 너무 크고, 인덱스가 커져서 메모리 압박을 하게 된다고 하더라고요.

그렇다고 사용자 테이블의 pk를  user0010 등의 code + 숫자 조합으로 만들기엔 뭔가 아닌것 같다라는 느낌이 들었습니다.

 

어떤식으로 pk 설계를 해야지 가장 좋은 설계라고 할 수 있을까요?

 

 

 

by 우리집아찌 [2021.07.26 16:59:20]

인조식별자로 PK를 구성하시려나 보내요 유저 아이디로 PK로 할경우 유저 아이디가 변경이 힘든데 인조식별자로 하면 해결되지요

인조식별자는 보통 숫자로 시퀀스하게 쓰는걸 추천드립니다 문자를 섞어쓰는걸을 추천하진 않습니다


by momo [2021.07.26 20:51:26]

친절한 답변 감사드립니다!

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