개인 "이름"필드에 대한 합리적인 길이 제한은 무엇입니까?

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

  •  09-06-2019
  •  | 
  •  

문제

인증되지 않은 사용자가 이름을 포함한 정보를 입력 할 수있는 간단한 웹 양식이 있습니다.필드가 varchar (50) 인 데이터베이스 테이블과 일치하도록 이름 필드에 50 자 제한을 지정했지만 궁금해하기 시작했습니다.

텍스트 열 유형과 같은 것을 사용하는 것이 더 적절합니까? 아니면 이름의 길이를 합리적인 것으로 제한해야합니까?

귀하의 답변에 중요한 경우를 대비하여 SQL Server 2005를 사용하고 있습니다.

수정 : 이보다 넓은 범위를 보지 못했습니다.유사한 문제에 관한 질문

도움이 되었습니까?

해결책

UK Government Data Standards Catalogue 는 각 이름과성에 대해 35 자 또는 전체 이름을 포함하는 단일 필드에 대해 70자를 제안합니다.

다른 팁

이 질문에 늦었다는 것을 알고 있지만 어쨌든 다른 사람들이 유사한 질문을 가지고 여기에 올 수 있으므로 어쨌든이 댓글을 추가하겠습니다.

언어에 따라 열 크기를 조정하지 않도록주의하세요.처음에는 사람들이 마이그레이션하고 이름을 가져 간다는 사실을 제쳐두고 유지 관리의 악몽에 빠지게됩니다.

예를 들어, 이러한 추가 성을 가진 스페인 사람들은 영어권 국가로 이주하여 거주 할 수 있으며 자신의 전체 이름이 사용되기를 합리적으로 기대할 수 있습니다.러시아인은 성 외에도 후원자를 가지고 있으며 일부 아프리카 이름은 대부분의 유럽 이름보다 상당히 길 수 있습니다.

잠재적 인 행 수를 고려하여 각 열을 합리적으로 최대한 넓게 만듭니다.이름, 기타 이름 및성에 각각 40자를 사용하며 문제를 발견 한 적이 없습니다.

보통 varchar (255)를 사용합니다 (255는 MySQL에서 varchar 유형의 최대 길이).

한 필드의 전체 이름 인 경우 일반적으로 별도의 필드에서 이름과 마지막에 128-64 / 64를 사용합니다. 당신은 결코 알 수 없습니다.

@Ian Nelson : 다른 사람들이 그곳에서 문제를 보는지 궁금합니다.

분할 필드가 있다고 가정 해 보겠습니다.총 70 자, 이름은 35 자, 성은 35 자입니다.그러나 하나의 필드가있는 경우 이름과 성을 구분하는 공백을 무시하고 1 자로 짧게 변경합니다.물론 "단지"한 문자이지만, 이름을 입력하는 사람과 그렇지 않은 사람을 구분할 수 있습니다.따라서이 제안을 "각 이름과성에 대해 35 자 또는 전체 이름을 포함하는 단일 필드에 대해 71 자"로 변경합니다.

영국에는 대부분의 영국 인구를 성공적으로 처리하는 몇 가지 정부 표준 (여권 사무소, 운전 및 차량 면허 기관, 증서 조사 사무소 및 NHS)이 있습니다. 분명히 다른 표준을 사용합니다.

디드 설문 조사로 이름 변경 300 자 허용 ; <인용구>

이름의 길이에는 법적 제한이 없지만 성명에는 300 자 (공백 포함)로 제한됩니다.

NHS는 환자 이름에 70자를 사용합니다 <인용구>

환자 이름
형식 / 길이 : max an70

여권 사무소 처음 / 마지막 30 + 30 허용 및 운전 면허증 (DVLA)은 총 30 개입니다. <인용구>

다른 조직은 자신이 생성하는 문서에 표시 할 내용에 대해 자체 제한이 있습니다. HM Passport Office의 경우 이름과성에 대해 각각 30 자, DVLA의 경우 30 자 제한이 있습니다. 귀하의 전체 이름에 대한 합계.

50 개를 사용합니다.

당신이 정말로 묻는 것은 관련이 있지만 실질적으로 다른 질문입니다. 데이터베이스에 맞추기 위해 이름을 얼마나 자주 잘라야합니까?대답은 이름의 길이가 다른 빈도와 선택한 최대 길이에 따라 다릅니다.이러한 우려는 데이터베이스에서 사용하는 리소스에 대한 우려와 균형을 이룹니다.varchar 필드에 대해 서로 다른 최대 길이 사이에 오버 헤드 차이가 얼마나 적은지 고려할 때 일반적으로 이름을 자르지 않고 필드를 감히 크게 만들지 않는 편에서 오류가 발생합니다.

많은 문화 에는 종종 가족 이름이라고하는 '두 번째 성'이 있습니다.예를 들어 스페인 사람을 상대하는 경우 '성'과 성을 구분하는 것을 좋아할 것입니다.

가장 좋은 방법은 이름 구성 요소에 대한 데이터 유형을 정의하고성에 대한 데이터 유형을 사용하고 로케일에 따라 조정하는 것입니다.

평균 이름은 약 6 자입니다.성에 43이 남습니다.:) 원하는 경우 길이를 줄일 수있을 것 같습니다.

주요 질문은 얼마나 많은 행을 가질 것이라고 생각하십니까?수백만 행을 얻을 때까지 varchar (50)이 당신을 죽일 것이라고 생각하지 않습니다.

데이터베이스를 사용할 사람에 따라 예를 들어 아프리카 이름은 성과 이름을 구분하는 varchar (20)을 사용합니다.그러나 국가마다 다르지만 데이터베이스 리소스와 메모리를 절약하기 위해 성과 이름 필드를 분리하고 varchar (30)을 사용하면 작동 할 것이라고 생각합니다.

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