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


138

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

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

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

편집 : 비슷한 문제에 관한 이 광범위한 질문을 보지 못했습니다 .


1
주제에 대한 많은 토론에 대해서는 이 관련 질문 을 확인하십시오 .
Chris Marasti-Georg

2
세계화 시대의 varchar는 일반적으로 올바른 데이터 유형이 아니며 nvarchar를 사용해야 할 가능성이 있습니다.
Tao

@Tao : MS SQL Server를 사용하고 있기 때문에 동의합니다. 그러나 VARCHAR UTF-8을 더 잘 지원하는 다른 SQL 구현에서 올바른 데이터 유형입니다.
dan04

답변:


142

영국 정부 데이터 표준 카탈로그 는 이름과 성 각각에 대해 35 자, 전체 이름을 보유 할 단일 필드에 대해 70자를 제안합니다.


3
링크는 2010 년 10 월 22 일자로 업데이트되어야합니다. 사이트 : *. gov.uk "35 자"라는 이름으로이 문서를 찾았습니다 justice.gov.uk/guidance/docs/electoral-reg-standards.pdf
Tony R

그들의 연결은 정말로 나빠 보인다 ... 2012
Thomas B

6
내가 찾은 가장 긴 "합리적인"성명은 "Gisele Marie-Louise Marguerite LaFleche"(39 바이트 길이)입니다.
user1154664

조금 더 큰 54 개의 문자 : gw.geneanet.org/…
mestachs

3
뉴질랜드는 전체 이름을 제한합니다. 공백을 포함하여 100 자 미만이어야하며 기호 나 숫자를 포함 할 수 없습니다. 그래도 하이픈은 가족 이름으로 허용됩니다.
Glutnix

27

나는 이것에 늦었다는 것을 알고 있지만, 어쨌든 다른 사람들이 비슷한 질문을하면서 앞으로 여기에 올 수 있기 때문에 어쨌든이 의견을 추가 할 것입니다.

로케일에 따라 열 크기를 조정할 때주의하십시오. 처음에는 유지 관리의 악몽을 설정하고 사람들이 이주하고 이름을 붙인다는 사실을 제쳐 둡니다.

예를 들어, 성씨가 여분 인 스페인 사람들은 영어권 국가로 이주하여 살 수 있으며 합리적으로 성명이 사용될 것으로 기대할 수 있습니다. 러시아인은 성뿐만 아니라 이름도 있지만 일부 아프리카 이름은 대부분의 유럽 이름보다 상당히 길 수 있습니다.

잠재적 행 수를 고려하여 합리적으로 가능한 한 각 열을 넓히십시오. 나는 이름, 성,성에 각각 40자를 사용하며 아무런 문제도 발견하지 못했습니다.


오랜 시간이 지났더라도 답변 주셔서 감사합니다.
멸종 위기에 처한

9

나는 보통 varchar (255) (255는 MySQL에서 varchar 유형의 최대 길이 임)와 함께 사용합니다.


30
또한 GUI 및 성 / 이름이 표시되는 기타 매체에 255 자의 공간을 확보합니까? ;-)
AndrewBourgeois

2
"왜 varchar (255)를 항상 사용하지 않는가?" 이제 길이 제약 조건은 대부분 UI에 대한 것임을, 디자이너가 UI를 디자인 할 때 의존 할 수있는 제약 조건은 데이터베이스에서 너무 많은 공간을 사용하는 것입니다.
jdg

6

하나의 필드에 전체 이름이있는 경우 일반적으로 처음에는 128-64/64로, 별도의 필드에는 마지막으로 이동합니다.


6

@Ian Nelson : 다른 사람들이 문제를 볼지 궁금합니다.

분할 필드가 있다고 가정 해 봅시다. 총 70 자, 이름은 35 자, 성은 35 자입니다. 그러나 필드가 하나 인 경우 이름과 성을 구분하는 공백은 무시하고 한 문자 씩 짧게 변경합니다. 물론, 그것은 하나의 문자 일 뿐이지 만, 그것은 이름을 입력하는 사람과 그렇지 않은 사람의 차이를 만들 수 있습니다. 그러므로 나는 그 제안을 "성명과 성명 각각에 35 자, 또는 성명을 지닐 단일 필드에 71 자"로 변경할 것입니다.


2
이 문서를 따르는 요점은 다른 영국 정부 시스템과 상호 운용이 가능하므로 70에서 71까지 개별적으로 충돌하여 하루에 호출 할 수 없으며 그렇지 않으면 70 자 제한이있는 시스템에서 텍스트가 잘릴 수 있습니다. (자신의 시스템에 두 형식으로 데이터를 저장해서는 안됩니다.) 이름에는 Family / Given뿐만 아니라 Title 및 Suffix도 포함되어 있기 때문에 실제로 악화됩니다. 추가 된 필드에 재미로 가득 찬 143 개의 최대 문자. 두 가지 형식의 이름 저장소와 데이터를 교환해야하는 개발자가됩니다.
mmitchell

3
분명한 지침은 개인이 긴 이름 (최대 35 자) 또는 긴 가족 이름 (최대 35 자)을 가질 수 있지만 이름의 두 부분이 너무 길지는 않을 것으로 예상됩니다.
Ian Nelson

3

영국에는 영국의 대다수 인구를 성공적으로 처리하는 몇 가지 정부 표준이 있습니다. 여권 사무소, 운전 및 차량 면허 청, Deed Poll 사무소 및 NHS입니다. 그들은 분명히 다른 표준을 사용합니다.

Deed Poll로 이름을 변경 하면 300자를 사용할 수 있습니다 .

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

NHS는 환자의 이름 (70 개) 문자를 사용

환자 이름
형식 / 길이 : 최대 an70

여권 사무소 는 30 + 30의 첫 번째 / 마지막을 허용 하며 운전 면허증 (DVLA)은 총 30 개입니다.

HM 패스포트 오피스의 경우 귀하의 성 및 성을 기준으로 각각 30 자, DVLA의 경우 30 자 (영문 30 자)로 제한됩니다. 이름.



2

실제로 묻는 것은 관련이 있지만 실질적으로 다른 질문입니다. 데이터베이스에 맞추기 위해 얼마나 자주 이름을 자르고 싶습니까? 답은 다양한 이름의 빈도와 선택한 최대 길이에 따라 다릅니다. 이 문제는 데이터베이스에서 사용하는 리소스에 대한 문제와 균형을 이룹니다. varchar 필드의 최대 길이가 서로 약간의 오버 헤드 차이가 거의 없다는 것을 고려할 때 일반적으로 절대로 이름을 자르지 않고 감히 필드를 크게 만들지 않는 편이 잘못되었습니다.


1

많은 문화권 에는 종종 가족 이름이라고 불리는 '두 번째 성'이 있습니다. 예를 들어, 스페인 사람들을 상대하는 경우 가족 이름이 '성'과 분리되어 있다는 것을 알게 될 것입니다.

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


통계적으로 더 작은 값을 갖는 로케일에서 제한을 작게 만드는 이점은 없습니다. 일부 값이 실제로 허용되는 추가 문자를 차지하지 않는 한 필드 크기는 공간에 영향을 미치지 않습니다. !
Tao

0

평균 이름은 약 6 글자입니다. 성이 43이됩니다. :) 원한다면 아마 짧아 질 것 같습니다.

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


6
varchar (20) 열에 10에서 15 자 사이의 5 천만 값이 있고 varchar (50) 열에 동일한 5 천만 값이 있으면 정확히 같은 공간을 차지합니다. 그것은 char가 아니라 varchar의 요점입니다.
Tao


0

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.