데이터베이스 디자인에서 사용자 이름을 기본 키로 사용하는 것이 좋지 않습니까?
-
22-07-2019 - |
문제
나는 친구에게 들었다 :
어떤 고유 키를 사용하십니까? 나는 당신이 전체 사용자 이름을 저장하지 않기를 바랍니다 --- 이것은 너무 많은 테이블 공간을 사용합니다! 고유 한 userID를 각 (고유 한) 사용자 이름에 할당 하고이 userID를 저장하십시오 (정수 부호없는 AUTO_INCREMENT 또는 BIGINT UNSIGNED AUTO_INCREMENT 임). 참조를 만드는 것을 잊지 마십시오
외국 키 (
userID
) 참조usertable
(userID
) userID를 사용하는 모든 테이블에서.
위의 진술이 맞습니까? 그 이유는 무엇?
해결책
기본 키가 변경 될 수 없기 때문에 그가 옳다고 생각하지만 username
바꿀 수있다. 그래서 당신은 사용해야합니다 userid
변하지 않기 때문입니다.
다른 팁
그는 잘못된 이유 때문에 옳습니다. 테이블 공간은 앱이 나중에 사용자 이름이 변경 될 수 있거나 고유 한 것을 중지 할 수 있다는 사실에 부차적이므로 (스택 오버 플로우와 같이 고유 한 사용자 이름이 필요하지 않은 경우 응용 프로그램을 구상 할 수 있음) 앱은 주요 리팩토링이 필요합니다. 다른 (정수 PK) 케이스의 가벼운 변화 대신 데이터 마이그레이션.
제휴하지 않습니다 StackOverflow