by momo [DB 모델링/설계] 설계 테이블 [2021.07.24 17:42:11]
예를 들어 mysql에서 간단한 유저 테이블을 만들 때,
사용자의 이메일과 사용자의 이름 혹은 닉네임을 저장해야하는 테이블을 설계 해야 하는경우
어떤것을 primary key로 두고 설계하는 것이 좋을까요?
제 생각에는 사용자 이메일을 primary key로 두고 설계할 수 있겠지만, 나중에 하나의 이메일로 여러 사용자를 생성해야 하는 경우 등의 시스템 변경이 발생할 수 있기 때문에
uuid를 pk로 두고 설계하는 것이 좋다고 생각하였습니다.
그런데 uuid가 36개의 문자로 구성되어 있기 때문에 너무 크고, 인덱스가 커져서 메모리 압박을 하게 된다고 하더라고요.
그렇다고 사용자 테이블의 pk를 user0010 등의 code + 숫자 조합으로 만들기엔 뭔가 아닌것 같다라는 느낌이 들었습니다.
어떤식으로 pk 설계를 해야지 가장 좋은 설계라고 할 수 있을까요?