데이터베이스 디자인에서 사용자 이름을 기본 키로 사용하는 것이 좋지 않습니까?

StackOverflow https://stackoverflow.com/questions/1825613

문제

나는 친구에게 들었다 :

어떤 고유 키를 사용하십니까? 나는 당신이 전체 사용자 이름을 저장하지 않기를 바랍니다 --- 이것은 너무 많은 테이블 공간을 사용합니다! 고유 한 userID를 각 (고유 한) 사용자 이름에 할당 하고이 userID를 저장하십시오 (정수 부호없는 AUTO_INCREMENT 또는 BIGINT UNSIGNED AUTO_INCREMENT 임). 참조를 만드는 것을 잊지 마십시오

외국 키 (userID) 참조 usertable (userID) userID를 사용하는 모든 테이블에서.

위의 진술이 맞습니까? 그 이유는 무엇?

도움이 되었습니까?

해결책

기본 키가 변경 될 수 없기 때문에 그가 옳다고 생각하지만 username 바꿀 수있다. 그래서 당신은 사용해야합니다 userid 변하지 않기 때문입니다.

다른 팁

그는 잘못된 이유 때문에 옳습니다. 테이블 공간은 앱이 나중에 사용자 이름이 변경 될 수 있거나 고유 한 것을 중지 할 수 있다는 사실에 부차적이므로 (스택 오버 플로우와 같이 고유 한 사용자 이름이 필요하지 않은 경우 응용 프로그램을 구상 할 수 있음) 앱은 주요 리팩토링이 필요합니다. 다른 (정수 PK) 케이스의 가벼운 변화 대신 데이터 마이그레이션.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top