Pergunta

Estou projetando uma tabela de banco de dados e mais uma vez me perguntando a mesma pergunta estúpida: Qual deve ser o tamanho do campo do primeiro nome?

Alguém tem uma lista de comprimentos razoáveis ​​para os campos mais comuns, como nome, sobrenome e endereço de e-mail?

Foi útil?

Solução

Recomendação do W3C:

Se projetar um formulário ou banco de dados que aceite nomes de pessoas com uma variedade de origens, você deve Pergunte a si mesmo se você realmente precisa ter campos separados para determinado nome e nome da família.

… Lembre -se de que os nomes em algumas culturas podem ser muito mais longos do que os seus.… Evite limitar o tamanho do campo para nomes em seu banco de dados.Em particular, não assuma que um nome japonês de quatro caracteres no UTF-8 caberá em quatro bytes-é provável que você realmente precisará de 12.

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

Para campos de banco de dados, VARCHAR(255) é uma escolha padrão segura, a menos que você consiga encontrar um bom motivo para usar outra coisa.Para aplicações web típicas, o desempenho não será um problema.Não otimize prematuramente.

Outras dicas

Acabei de consultar meu banco de dados com milhões de clientes nos EUA.

  • O máximo primeiro nome comprimento era 46.Eu vou com 50.(É claro que apenas 500 deles tinham mais de 25 anos, e todos foram casos em que as importações de dados resultaram em lixo extra nesse campo.)

  • Sobrenome era semelhante ao primeiro nome.

  • Endereço de e-mail Maxado em 62 caracteres.A maioria dos mais longos eram na verdade listas de endereços de email separados por semicolons.

  • endereço da Rua Máxico em 95 caracteres.Os longos eram todos válidos.

  • Máx. cidade comprimento era 35.

Esta deveria ser uma distribuição estatística decente para as pessoas nos EUA.Se você tiver que considerar a localização, os números poderão variar significativamente.

Catálogo de padrões de dados do governo do Reino Unido detalha os padrões do Reino Unido para esse tipo de coisa.Ele sugere 35 caracteres para cada nome e sobrenome, ou 70 caracteres para um único campo para conter o nome completo e 255 caracteres para um endereço de e-mail.Entre outras coisas..

Alguns comprimentos de coluna provavelmente corretos

                            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

Um longo discurso sobre nomes pessoais

Um nome pessoal é um polônimo (um nome com vários classificável componentes), um Monônimo (um nome com apenas um componente) ou um Pictônimo (um nome representado por uma imagem - isso existe devido a pessoas como Prince).

Uma pessoa pode ter vários nomes, desempenhando papéis, como LEGAL, MARITAL, DONZELA, PREFERENCIAL, SOBRIQUETE, PSEUDÔNIMO, etc.Você pode ter regras de negócios, como "uma pessoa só pode ter um nome legal por vez, mas vários pseudônimos por vez".

Alguns exemplos:

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"
  }
]

ou

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"
  }
]

ou

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"
  }
]

ou

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 */
  }
]

Nomes próprios, nomes do meio e sobrenomes podem ser palavras múltiplas, como "Billy Bob" Thornton, ou Ralph "Vaughn Williams".

Eu diria para errar pelo lado alto.Como você provavelmente usará varchar, qualquer espaço extra permitido não consumirá nenhum espaço extra, a menos que alguém precise dele.Eu diria para nomes (primeiro ou último), pelo menos 50 caracteres, e para endereço de e-mail, pelo menos 128.Existem alguns endereços de e-mail muito longos por aí.

Outra coisa que gosto de fazer é ir Lipsum. com e peça para gerar algum texto.Dessa forma, você pode ter uma boa ideia da aparência de 100 bytes.

Praticamente sempre uso uma potência de 2, a menos que haja um bom motivo para não fazê-lo, como uma interface voltada para o cliente onde algum outro número tenha um significado especial para o cliente.

Se você se limitar a potências de 2, isso o manterá dentro de um conjunto limitado de tamanhos comuns, o que por si só é uma coisa boa, e torna mais fácil adivinhar o tamanho de objetos desconhecidos que você pode encontrar.Vejo um bom número de outras pessoas fazendo isso, e há algo esteticamente agradável nisso.Geralmente me dá uma sensação boa quando vejo isso, significa que o designer estava pensando como um engenheiro ou matemático.Embora eu provavelmente ficaria preocupado se apenas números primos fossem usados.:)

Eu queria encontrar o mesmo e os padrões de dados do governo do Reino Unido mencionados na resposta aceita pareciam ideais.No entanto, nada disso parecia existir mais - depois de uma longa pesquisa, encontrei-o em um arquivo aqui: http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/schemasstandards/e-gif/datastandards.aspx.É necessário baixar o zip, extraí-lo e abrir default.htm na pasta html.

primeiro nome :35 Nome do último:35 e -mail:255 URL:Mais de 60 de acordo com o servidor e o navegador:45 Endereço:90

Apenas olhando meus arquivos de e-mail, há vários "primeiros" nomes bem longos (é claro que o que significa primeiro varia de acordo com a cultura).Um exemplo é Krishnamurthy - que tem 13 letras.Um bom palpite pode ser de 20 a 25 letras com base nisso.O e-mail deve ser muito por mais tempo, já que você pode ter firstname.lastname@somedomain.com.Além disso, o Gmail e alguns outros programas de e-mail permitem que você use firstname.lastname+sometag@somedomain.com onde "sometag" é qualquer coisa que você queira colocar lá para poder usá-lo para classificar os e-mails recebidos.Frequentemente encontro formulários da web que não me permitem inserir meu endereço de e-mail completo sem considerar nenhuma tag.Então, se você precisar de um campo de e-mail fixo, talvez algo como 25,25+15@20,3 em caracteres para um total de 90 caracteres (se eu fiz minhas contas corretamente!).

Estes podem ser úteis para alguém;

youtube max channel length = 20
facebook max name length   = 50
twitter max handle length  = 15
email max length           = 255 

http://www.interroadvisory.com/2015/08/6-areas-inside-of-linkedin-with-character-limits/

Eu costumo ir com:

Primeiro nome:30 caracteres
Sobrenome:30 caracteres
E-mail:50 caracteres
Endereço:200 caracteres

Se estou preocupado com campos longos para os nomes, às vezes posso usar 50 também para os campos de nomes, já que o espaço de armazenamento raramente é um problema atualmente.

Se você precisar considerar a localização (para quem está fora dos EUA!) e for possível em seu ambiente, sugiro:

Defina tipos de dados para cada componente do nome - NOTA:algumas culturas têm mais de dois nomes!Em seguida, tenha um tipo para o nome completo,

Então a localização se torna simples (no que diz respeito aos nomes).

O mesmo se aplica aos endereços, aliás - formatos diferentes!

é varchar certo?Então não importa se você usa 50 ou 25, é melhor estar seguro e usar 50, dito isso, acredito que o maior tempo que vi foi cerca de 19 ou mais.Os sobrenomes são mais longos

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top