나는 대리자 기본 키가 자연스러운 기본 키보다 일반적으로 권장된다는 것을 알고 있지만 사용자 이름과 관련하여 대리 기본 키를 선호하는 인수가 있습니까?사용자 이름이 기본 키의 유효한 후보입니까?
답변
사용자 이름이 중복되지 않게하려면 UNIQUE constraint
을 만드십시오.
DWong1145
의 사용자 이름을 변경하려면 어떻게해야합니까? 모든 데이터베이스 관계를 UPDATE CASCADE
으로 만들겠습니까?
고객 관점에서 말하자면. 나는 사용자 이름이 DWong1145가되기를 원하지 않습니다.
은 고유 키/상수으로 만 사용하십시오. 사용자 이름은 변경 될 수 있으며, 예를 들어 상표 일 수 있으며 소유주는 사용자에게 삭제를 요청할 수 있습니다.
약간 간결한 것 같습니다.) * 당신은 * 맞습니다. 나는 당신이 당신의 사용자 이름을 바꿀 수없는 시스템을 싫어한다 - 그러나 OP는 그가 그것을 바꿀 필요가 없다는 의견에 말했다. 그래서 ... –
어떤 의미에서 좋은 후보이지만, 실제로 수행하기를 원한다면 고려해야합니다. 예를 들어, 특정 사용자 이름을 가진 사용자가 있으면 사용자는 "삭제"(또는 삭제 된 것으로 표시)됩니다. 따라서 동일한 사용자 이름으로 다른 사용자를 만들지 못하게 할 이유는 없지만 기본 키이므로 이미 "가져 왔습니다".
문자열을 기본 키로 사용하는 것이 사용자 이름인지 여부에 관계없이 큰 단점은 테이블을 참조하는 모든 외래 키 열도 더 느려지고 더 많은 공간을 낭비하는 문자열이어야한다는 것입니다.
더 느릴 필요는 없습니다. 좋은 데이터베이스 엔진은 모든 문자열 값을 사전 해시 할 수 있습니다. 게다가 자연 키를 사용하면 응용 프로그램에서 많은 조인이 필요하지 않으므로 쿼리가 빨라집니다. 자연 키는 일반적으로 더 많은 공간을 사용하지만 솔직히 공간은 저렴하고 풍부합니다. –
- 1. appcfg.py를 사용하여 데이터 저장소 엔터티를 업데이트하면 기본 키의 이름이 변경됩니다.
- 2. 기본 키의 인덱스 이름
- 3. 외래 키도 기본 키의 일부입니다
- 4. xml 엔티티에 유효한 이름이 있는지 확인하는 방법
- 5. 다운로드 클래스는 변경할 수없는 후보입니까?
- 6. 기본 키의 이름이 똑같지 않으면 Hibernate에서 객체 세트를 매핑하는 방법은 무엇입니까?
- 7. 기본 키의 번호를 결정하는 표준 방법은 무엇입니까?
- 8. MySQL : 자동 증가 기본 키의 순서 변경?
- 9. SQL Server에서 자동 증가 기본 키의 상한
- 10. 클러스터 인덱스 GUID 기본 키의 성능 향상
- 11. 시퀀스 생성 기본 키의 적절한 크기는 무엇입니까?
- 12. Entity Framework 코드가있는 기본 키의 일대일 관계
- 13. 세션 사용자 이름이
- 14. 사용자 이름이 있는지 확인하십시오.
- 15. 기본 키 - UUID 기본 키의 VARBINARY 또는 BLOB 또는 VARCHAR
- 16. Stateful DLL은 상태 패턴에 적합한 후보입니까?
- 17. Javascript 함수 유효한 사용자 이름
- 18. 사용자 이름에 유효한 문자는 무엇이되어야합니까?
- 19. 설치시 postgres의 기본 사용자
- 20. iPhone Twitter Timeline 사용자 이름이
- 21. 사용자 이름이 올바르게 표시되지 않습니다.
- 22. 이름이 유효한 문자로 구성되어 있어도 테이블/열 이름은 대괄호로 묶입니다.
- 23. 오류 1325 "SharePointData는"유효한 짧은 파일 이름이 아닙니다
- 24. "리소스 이름이 유효한 식별자가 아닙니다."컴파일러 경고를 해결하는 방법
- 25. ASP.NET MVC 멤버십 - 잘못된 사용자 이름이 사용됨
- 26. .net WinForms ListView에서 스페이스 키의 기본 동작을 재정의하십시오.
- 27. CreateProcessAsUser에 대해 유효한 사용자 토큰을 얻으려면 어떻게해야합니까?
- 28. bash 스크립트에 기본 이름이 공백이 있습니까?
- 29. infopath를 사용하여 작업 초기화를 사용자 정의하는 경우 사용자 정의 작업 흐름의 infopath 양식에 대한 기본 이름이
- 30. JPA로 복합 기본 키의 시퀀스 번호를 간접적으로 생성
내 질문은 인증 시스템의 맥락에있다. 사용자 이름 변경 허용. 나는 그것을 언급 했어야했다. –
@Emanuil - 쥬라기 공원에서 Jeff Goldblum의 말을 인용하면 "인생은 한 방법을 찾습니다." 언젠가 사용자 이름을 바꿀 필요가 있다면 지금 바로이 순간을 후회할 것입니다 ... –
"''정보 '를 키로 사용해서는 안됩니다; '데이터'는 프로그램에서 항상 이해할 수있는 것처럼 변경 될 필요가 없습니다. SO에게 전화를 걸어 내 사용자 _id_을 (를) 변경 하시겠습니까? 그럴 수는 없지만 사용자 _name_을 (를) 변경할 수 있습니다. –