만들거나 사용 문자열 변수 로 지정된 이름을 사용하는 비 등록 사용자 의 이름을 생성 함수의 논리는 무엇인가하는 방법 SQL 2005 (핫메일에 등록하는 등, 야후)기능은 비 등록을 한 사용자의 이름을 생성하는
답변
실제 이름이 주어지면 '사용자'레코드의 고유 사용자 이름을 생성하려고합니까? 아니면 이메일 주소? 이 때문에 SQL Server에서 추적/저장할 수 있습니다 (질문은 명확하지 않습니다)? 평소의 일은 사용자를 위해 사용자 이름을 만들지 않는 것입니다 (사용자를 유인하는 데 사용할 수있는 장점 중 하나입니다. 사용자가 자신의 사용자 이름을 얻을 수 있습니다).
대신 이메일 주소 자체를 기본 키로 사용할 수 있습니다. 어쨌든 사용자 이름 필드는 null 허용 (NULL 허용)이며 사용자가 가입하고 이름을 선택한 경우에만 데이터를 포함합니다.
사용자 이름이없는 경우 사용자 이름 또는 이메일 주소를 표시하려는 경우 COLESCE 또는 ISNULL을 사용할 수 있습니다 (예 : SELECT ISNULL(username, email_address)
). 'username'값을 제공합니다 (null이 아닌 경우) 이 경우 'email_address'값을 제공합니다.
호프가 도움이 될 것입니다. 아마도 당신이 묻고있는 질문이 아니 겠지만, 다시 말해서 정교 할 수 있다면 우리는 더 도와 드리겠습니다.
또는 질문을 다시 읽습니다. 사용 가능한 사용자 이름을 제안 하시겠습니까? 예를 들어 그들이 입력 한 경우 :
이름 :
Kieren
성 :
그런 다음 KierenJohnstone, KierenJohnstone1, JohnstoneK, KJohnstone 등을 제안 할 Johnstone
? (사용할 수있는 경우).
이런 경우,이 같은 가능성을 생성하는 방법, 작성해야 : 그 데이터베이스에서 사용할 수있는 경우 당신이 보는 것, 그리고
public IEnumerable<string> GeneratePossibleBaseUsernames(string firstname, string lastname)
{
yield return firstname + lastname; // eg KierenJohnstone
yield return lastname + firstname; // eg JohnstoneKieren
yield return firstname.Substring(0,1) + lastname; // eg KJohnstone
yield return lastname + firstname.Substring(0,1); // eg JohnstoneK
yield return firstname + lastname.Substring(0,1); // eg KierenJ
}
을 :
public List<string> GetAvailablePossibleUsernames(string firstname, string lastname)
{
List<string> availablePossibilities = new List<string>();
foreach (string possible in GeneratePossibleBaseUsernames(firstname, lastname))
{
if (IsAvailable(possible))
{
availablePossibilities.Add(possible);
continue;
}
for (int i = 1; i < 100; i++)
{
string postfixedTest = possible + i.ToString();
if (IsAvailable(postfixedTest))
{
availablePossibilities.Add(postfixedTest);
break;
}
}
}
return availablePossibilities;
}
당신에게 IsAvailable() 메서드를 작성하여 문자열을 매개 변수로 사용하고 사용자 이름이 데이터베이스에없는 경우 'true'를 반환해야합니다.
이 메서드는 GeneratePossibleBaseUsernames에서 결과를 시도하고 그 중 하나가 사용 가능하지 않으면 그 이후에 1에서 99까지의 숫자로 시도합니다. KierenJohnstone이 잡히면 KierenJohnstone1을 제안합니다.
또한이 모든 것을 SQL 저장 프로 시저 내에서 구현할 수 있습니다. 레코드를 삽입/업데이트 할 때 이름을 사용할 수 있는지 다시 확인하거나 중복을 막기 위해 사용자 이름 테이블에 고유 한 인덱스를 넣어야합니다. 두 사람이 같은 시간에 동일한 이름을 사용하는 경우를 대비하여!
희망이 있습니다.
- 1. 호출 비 DLL 기능은
- 2. 문자열에서 고유 한 폴더 이름을 생성하는 질문
- 3. 브라우저를 통해 os에 로그인 한 사용자의 사용자 이름을 얻으십시오.
- 4. GlassFish의 JSF 서비스에 로그인 한 사용자의 이름을 얻는 방법
- 5. Visual Studio에서 고유 한 메서드 이름을 자동으로 생성하는 방법이 있습니까?
- 6. 짧고 고유 한 파일/폴더 이름을 생성하는 좋은 방법은 무엇입니까?
- 7. RoR에서 고유 한 익명 사용자 이름을 생성하는 방법은 무엇입니까?
- 8. drupal 비 관리자 사용자의 계정 이메일 및 비밀번호 변경을 숨기기
- 9. 가비지 연결 이름을 생성하는 SqlMetal
- 10. 현재 사용자의 사용자 이름을 찾기 - 여러 사용자가
- 11. 레일즈 등록을
- 12. 페이지/링크에 로그인 한 사용자의 세션 확인?
- 13. 현재 로그인 한 사용자의 Teamcity 속성
- 14. 비 관리 코드에서 MSIL을 생성하는 방법은 무엇입니까?
- 15. C++ 동적 객체 이름을 생성하는 방법은 무엇입니까?
- 16. 사용자의 이미지 업로드 이름을 지정하는 방법은 무엇입니까?
- 17. ShareKit에서 사용자의 Facebook 사용자 이름을 얻으려면 어떻게해야합니까?
- 18. oracle10g에서 다른 사용자의 이름을 아는 방법은 무엇입니까?
- 19. 사용자의 실제 이름을 저장하는 모범 사례
- 20. 응용 프로그램 이름을 사용하여 사용자의 벽에 게시하기
- 21. 각 사용자의 도메인 이름을 사용 하시겠습니까?
- 22. ASP.Net : Ajax가 사용자 등록을 확인합니까?
- 23. imgur.com에 비 임의 파일 이름을 설정하는 방법
- 24. RemoteActor 등록을 취소합니다
- 25. asp.net에서 이벤트 등록을 취소해야합니까
- 26. 기능은
- 27. 고유 한 영숫자를 생성하는 방법?
- 28. jQuery/Javascript 바꾸기 기능은 한 번만 작동합니다.
- 29. jQuery 토글 기능은 한 번만 작동합니다.
- 30. 한 번만 사용 된 기능은 UserControl에 있어야합니까?