데이터베이스 필드의 표준 길이 목록


394

데이터베이스 테이블을 디자인하고 다시 한 번 같은 멍청한 질문을 합니다. 이름 필드는 얼마나 오래 걸리나요?

누구든지 이름, 성 및 전자 메일 주소와 같이 가장 일반적인 필드에 알맞은 길이의 목록이 있습니까?


1
이름에 알파벳이 아닌 문자를 허용하십시오! 그의 마지막 이름에 하이픈에서 포인트
크리스 Marasti - 게오르그

3
최대 이메일 주소 길이는 "유효한 이메일 ID의 최대 길이"를 참조하십시오 .
outis

2
참고 사항 : "이름"과 "성"이 필요하지 않습니다. 나와 같은 일부 사람들은 하나의 이름 만 가지고 있습니다. (증거 : web.archive.org/web/20130115074449/http://saizai.com/… )
Sai

블로그 나 프로필 링크와 같은 URL은 어떻습니까?
AlikElzin-kilaka

답변:


34

W3C의 추천 :

다양한 배경을 가진 사람들의 이름을 받아 들일 양식이나 데이터베이스를 설계하는 경우, 주어진 이름과 가족 이름에 대해 별도의 필드가 필요한지 스스로에게 물어봐야합니다.

… 일부 문화권의 이름은 자신의 이름보다 훨씬 길 수 있습니다. … 데이터베이스 이름의 필드 크기를 제한하지 마십시오 . 특히 UTF-8의 4 문자 일본어 이름이 4 바이트에 해당한다고 가정하지 마십시오. 실제로 12자가 필요합니다.

https://www.w3.org/International/questions/qa-personal-names

데이터베이스 필드의 VARCHAR(255)경우 실제로 다른 것을 사용해야 할 합당한 이유가없는 한 안전한 기본 선택입니다. 일반적인 웹 응용 프로그램의 경우 성능에 문제가 없습니다. 조기 최적화하지 마십시오.


26
그 질문을 한 지 10 년이 지났습니다. 내 벨트 아래에서 10 년의 경험을 쌓으면서 나는 당신에게 동의하는 경향이 있습니다.
패트릭 맥엘 하네

2
봉투에 255 자 길이의 이름을 정확히 어떻게 인쇄 하시겠습니까?
마이클 포터

316

방금 미국에있는 수백만 명의 고객과 데이터베이스를 쿼리했습니다.

  • 이름 의 최대 길이는 46입니다. 저는 50을 사용합니다. 물론 그 중 500 명만이 25를 넘었으며, 데이터 가져 오기로 인해 해당 필드에서 추가 정크가 발생했습니다.

  • 성은 이름 과 비슷했습니다.

  • 이메일 주소 는 최대 62 자입니다. 가장 긴 것들은 실제로 세미콜론으로 구분 된 이메일 주소 목록이었습니다.

  • 주소 는 최대 95 자입니다. 긴 것이 모두 유효했습니다.

  • 최대 도시 길이는 35 세입니다.

이것은 미국 사람들에게 적절한 통계적 확산이어야합니다. 현지화를 고려해야하는 경우 숫자가 크게 다를 수 있습니다.


4
당신과 비교할 때, 내가 액세스 할 수있는 데이터베이스는 작지만 전자 메일 주소는 138 자입니다. localpart 구성 요소는 분명히 일종의 LDAP (또는 AD?) 고유 이름입니다.
Bernd Jendrissek

2
전화 번호는 어때요?
ceving

@EricZBeard "주소"에 집 번호가 포함되어 있습니까?
noɥʇʎԀʎzɐɹƆ

3
데이터베이스에있는 이메일 주소의 평균 길이는 권장되는 측정 방법이 아닙니다. 이메일 주소의 최대 유효 길이는 254 자이며 데이터베이스에 지정된 길이 여야합니다. 또한 단일 열에 이메일 주소 목록이 있으면 데이터가 정규화되지 않아 답변이 무효화됨을 나타냅니다.
마리오

1
@MGOwen 첫째, 데이터베이스의 목적을 모릅니다. 특정 설정에서 이메일이 너무 길어서 사소한 문제로 인해 액세스가 거부되는 사람이 큰 문제가 될 수 있습니다. 둘째, 귀하가 게시 한 링크에는 "가장 긴 유효 링크는 89입니다"라고 표시되어 있습니다.이 링크에는 62가 표시되어 있습니다. 어느 것이 맞습니까? 임의의 숫자를 선택하거나 이름과 같은 유효한 이유가 있으면 주소의 일부로 포함시켜야합니다. 그러나 확실하지 않은 경우 사양을 참조하는 것이 여전히 합리적입니다. 나는 여전히 "내 데이터베이스 최대 값 x"라고 말하는 한 사람이 일화라고 주장합니다.
Mario

170

영국 정부 데이터 표준 카탈로그 에는 이러한 종류의 영국 표준이 자세히 설명되어 있습니다. 이름과 가족 이름은 각각 35 자, 전체 이름을 포함하는 단일 필드는 70 자, 전자 메일 주소는 255 자입니다. 무엇보다도 ..


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

20
그냥 생각 ... 공백이 있어야한다는 것을 감안할 때 단일 필드의 이름과성에 71자가되어서는 안됩니까?
Joseph Redfern

8
글쎄, 그들은 때때로 긴 이름 (최대 35 자)과 긴 이름 (최대 35 자)을 예상하지만, 긴 이름과 성을 조합 한 개인을 반드시 기대할 필요는 없습니다. 그건 욕심 일 것이다 ;-)
Ian Nelson

6
El Tahir El Fadil El Siddig Abderrahman Mohammed Ahmed Abdel Karim El Mahdi가 온라인 양식을 작성할 때 실제로 그의 모든 이름을 사용한다면 감동받을 것입니다. 나는 중간 이름이 두 개 있지만 공식 형식 (예 : 정부)과는 별도로 이들 중 하나만 사용합니다.
레온

2
@ ian-nelson RFC 3696에 따른 전자 메일 길이 : 이 제한은 "로컬 부분"( "@"앞)에서 최대 64 자 (옥텟)이고 도메인 부분 (후)에서 최대 255 자 (옥텟)입니다. 총 길이는 320 자입니다. 전자 메일을 처리하는 시스템은 거의 만나지 않지만 주소가 너무 길면 처리 할 수 ​​있도록 준비해야합니다.
Piotr Nawrot

53

아마도 올바른 열 길이

                            Min Max

Hostname                    1   255
Domain Name                 4   253
Email Address               7   254
Email Address [1]           3   254
Telephone Number            10  15      
Telephone Number [2]        3   26  
HTTP(S) URL w domain name   11  2083        
URL [3]                     6   2083    
Postal Code [4]             2   11
IP Address (incl ipv6)      7   45
Longitude                   numeric 9,6
Latitude                    numeric 8,6
Money[5]                    numeric 19,4

[1] Allow local domains or TLD-only domains
[2] Allow short numbers like 911 and extensions like 16045551212x12345
[3] Allow local domains, tv:// scheme
[4] http://en.wikipedia.org/wiki/List_of_postal_codes. Use max 12 if storing dash or space
[5] http://stackoverflow.com/questions/224462/storing-money-in-a-decimal-column-what-precision-and-scale

개인 이름에 대한 긴 분노

개인 이름은 Polynym (여러 정렬 가능한 이름) 구성 요소가 ), Mononym (한 구성 요소가있는 이름) 또는 Pictonym (그림으로 표시되는 이름-Prince와 같은 사람들이 있기 때문에 존재 함)입니다.

한 사람은 여러 이름을 가질 수 있으며 법률, MARITAL, 메이든, 선호, 소피아, PSEUDONYM 등과 같은 역할을 수행 할 수 있습니다. "한 번에 하나의 법적 이름 만 가질 수 있지만 여러 가명과 같은 비즈니스 규칙이있을 수 있습니다. 한 번에 "

몇 가지 예 :

names: [
  {
    type:"POLYNYM",
    role:"LEGAL",
    given:"George",
    middle:"Herman",
    moniker:"Babe",
    surname:"Ruth",
    generation:"JUNIOR"
  },
  {
    type:"MONONYM",
    role:"SOBRIQUET",
    mononym:"The Bambino" /* mononyms can be more than one word, but only one component */
  },
  {
    type:"MONONYM",
    role:"SOBRIQUET",
    mononym:"The Sultan of Swat"
  }
]

또는

names: [
  {
    type:"POLYNYM",
    role:"PREFERRED",
    given:"Malcolm",
    surname:"X"
  },
  {
    type:"POLYNYM",
    role:"BIRTH",
    given:"Malcolm",
    surname:"Little"
  },
  {
    type:"POLYNYM",
    role:"LEGAL",
    given:"Malik",
    surname:"El-Shabazz"
  }
]

또는

names:[
  {
    type:"POLYNYM",
    role:"LEGAL",
    given:"Prince",
    middle:"Rogers",
    surname:"Nelson"
  },
  {
    type:"MONONYM",
    role:"SOBRIQUET",
    mononym:"Prince"
  },
  {
    type:"PICTONYM",
    role:"LEGAL",
    url:"http://upload.wikimedia.org/wikipedia/en/thumb/a/af/Prince_logo.svg/130px-Prince_logo.svg.png"
  }
]

또는

names:[
  {
    type:"POLYNYM",
    role:"LEGAL",
    given:"Juan Pablo",
    surname:"Fernández de Calderón",
    secondarySurname:"García-Iglesias" /* hispanic people often have two surnames. it can be impolite to use the wrong one. Portuguese and Spaniards differ as to which surname is important */
  }
]

이름, 중간 이름, 성은 여러 단어 (예 : "Billy Bob" Thornton또는) 일 수 있습니다 Ralph "Vaughn Williams".


5
이것은 매우 유익하지만 매우 유용한 답변은 아닙니다. 다음에 "아마도 올바른"대답이 필요할 때 알려 드리겠습니다.
n8bar

16

나는 높은 편에서 실수한다고 말하고 싶다. 아마도 varchar를 사용할 것이므로 누군가가 필요로하지 않는 한 허용되는 추가 공간은 실제로 추가 공간을 사용하지 않습니다. 이름 (첫 번째 또는 마지막), 최소 50 자 이상, 전자 메일 주소의 경우 최소 128 자 이상으로 말하고 싶습니다. 실제로 긴 전자 메일 주소가 있습니다.

내가 좋아하는 또 다른 일은 Lipsum.com에 가서 텍스트를 생성하도록 요청하는 것입니다. 그렇게하면 100 바이트의 모양을 알 수 있습니다.


6
오 마이-첫 번째 사람은 더 큰 필드가 반드시 더 많은 저장 공간을 의미하지 않으므로 varchar의 "var"입니다. NVarchar는 일반적으로 이름에 더 적합합니다.
Tao

구현에 따라 다릅니다. VARCHAR이 UTF-8을 지원하는 경우 NVARCHAR이 필요하지 않습니다.
dan04

2
[N]Varchar그러나 크기 색인에 영향을줍니다.
RBarryYoung

11

다른 숫자가 고객에게 특별한 의미를 갖는 인터페이스를 향한 고객과 같은 정당한 이유가없는 한 거의 항상 2의 거듭 제곱을 사용합니다.

2의 거듭 제곱을 고수하면 제한된 크기의 공통 크기로 유지되며, 그 자체로는 좋은 일이며, 발생할 수있는 알 수없는 물체의 크기를 쉽게 추측 할 수 있습니다. 나는이 일을하는 다른 사람들이 상당히 많다는 것을보고, 미적으로 기쁜 일이 있습니다. 일반적으로 이것을 볼 때 좋은 느낌을줍니다. 디자이너가 엔지니어 나 수학자처럼 생각하고 있었음을 의미합니다. 소수만 사용하면 걱정할 것입니다. :)


3
2ⁿ-1, 2ⁿ-2 또는 2ⁿ-4, 2는 종종 문자열이 0 색인 문자 배열로 표시되고 널 문자, 바이트 또는 2 바이트 (UTF-8)로 끝나기 때문에 더 나은 엔지니어링 결정이 될 수 있습니다. ). 또한 varchar에서 255를 초과하는 일부 데이터베이스의 경우 저장을 위해 추가 바이트가 필요합니다 ( stackoverflow.com/questions/2340639/… 참조 ).
Pocketsand

4

나는 똑같은 것을 찾고 싶었고 수용 된 대답에 언급 된 영국 정부 데이터 표준이 이상적이라고 들었습니다. 그러나 이것들 중 어느 것도 더 이상 존재하지 않는 것 같습니다-확장 검색 후 나는 여기에있는 아카이브에서 찾았습니다 : http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/ schemasstandards / 전자 GIF / datastandards.aspx . 압축 파일을 다운로드하여 압축을 푼 다음 html 폴더에서 default.htm을 열어야합니다.



2
+------------+---------------+---------------------------------+
|   Field    | Length (Char) |           Description           |
+------------+---------------+---------------------------------+
|firstname   | 35            |                                 |
|lastname    | 35            |                                 |
|email       | 255           |                                 |
|url         | 60+           | According to server and browser |
|city        | 45            |                                 |
|address     | 90            |                                 |
+------------+---------------+---------------------------------+

편집 : 간격을 추가했습니다.


1
문자열 인 모든 것에 VARCHAR 255를 사용하지 않는 이유는 무엇입니까? VARCHAR은 패딩을 사용하지 않으며 추가 1 또는 2 바이트로 종료됩니다.
radtek

varchar는 조금 느려질 수 있습니다.
kta

1

내 이메일 보관소를 살펴보면 꽤 긴 "첫 번째"이름이 있습니다 (물론 첫 번째 의미는 문화에 따라 다릅니다). 한 예로 Krishnamurthy가 있는데 13 글자 길이입니다. 이를 바탕으로 20-25 자 정도의 문자를 추측 할 수 있습니다. firstname.lastname@somedomain.com이있을 수 있으므로 이메일이 훨씬 길어야합니다. 또한 Gmail 및 기타 메일 프로그램을 사용하면 firstname.lastname+sometag@somedomain.com을 사용할 수 있습니다. 여기서 "sometag"는 수신 이메일을 정렬하는 데 사용할 수 있도록 원하는 것입니다. 태그를 고려하지 않고 전체 이메일 주소를 입력 할 수없는 웹 양식을 자주 사용합니다. 따라서 고정 이메일 필드가 필요한 경우 25.25 + 15@20.3과 같은 문자로 총 90자를 입력 할 수 있습니다 (수학을 올바르게 수행하면!).


0

나는 보통 다음과 같이 간다 :

이름 : 30 자
: 30 자
이메일 : 50 자
주소 : 200 자

이름의 긴 필드가 염려되면 요즘에는 스토리지 공간이 거의 문제가되지 않으므로 이름 필드의 경우 50으로 갈 수도 있습니다.


11
이메일 50? 254는 실제로 최대입니다
Marko

0

현지화를 고려해야 할 경우 (미국 이외 지역의 사용자를 위해) 환경에서 가능한 경우 다음을 제안합니다.

이름의 각 구성 요소에 대한 데이터 유형 정의-참고 : 일부 문화권에는 이름이 세 개 이상 있습니다! 그런 다음 성명을 입력하십시오.

그런 다음 현지화가 간단 해집니다 (이름에 관한 한).

주소, BTW-다른 형식에도 동일하게 적용됩니다!


-1

varchar 맞습니까? 따라서 50 또는 25를 사용하더라도 안전하고 50을 사용하는 것이 중요하지 않습니다. 성은 더 깁니다

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