Domanda

Sto progettando una tabella di database e ancora una volta mi sto ponendo la stessa stupida domanda: Quanto dovrebbe essere lungo il campo del nome?

Qualcuno ha un elenco di lunghezze ragionevoli per i campi più comuni, come nome, cognome e indirizzo email?

È stato utile?

Soluzione

Raccomandazione del W3C:

Se si progetta un modulo o un database che accetterà nomi da persone con una varietà di sfondi, è necessario Chiediti se hai davvero bisogno di avere campi separati per il nome e il nome di famiglia.

... Tieni presente che i nomi in alcune culture possono essere molto più lunghi dei tuoi.… Evita di limitare la dimensione del campo per i nomi nel tuo database.In particolare, non dare per scontato che un nome giapponese di quattro caratteri in UTF-8 si adatterà a quattro byte: è probabile che tu ne abbia effettivamente bisogno di 12.

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

Per i campi del database, VARCHAR(255) è una scelta predefinita sicura, a meno che tu non riesca effettivamente a trovare una buona ragione per usare qualcos'altro.Per le tipiche applicazioni web, le prestazioni non saranno un problema.Non ottimizzare prematuramente.

Altri suggerimenti

Ho appena interrogato il mio database con milioni di clienti negli Stati Uniti.

  • Il massimo nome di battesimo la lunghezza era 46.Io vado con 50.(Naturalmente, solo 500 di questi avevano più di 25 anni, ed erano tutti casi in cui le importazioni di dati hanno comportato la fine di ulteriore spazzatura in quel campo.)

  • Cognome era simile al nome.

  • Indirizzi email massimizzato a 62 caratteri.La maggior parte di quelli più lunghi erano in realtà elenchi di indirizzi e -mail separati da punti e virgola.

  • indirizzo massima a 95 caratteri.Quelli lunghi erano tutti validi.

  • Massimo città la lunghezza era 35.

Questo dovrebbe essere uno spread statistico decente per le persone negli Stati Uniti.Se devi considerare la localizzazione, i numeri potrebbero variare in modo significativo.

Catalogo degli standard sui dati del governo britannico descrive dettagliatamente gli standard del Regno Unito per questo genere di cose.Suggerisce 35 caratteri per ciascuno dei nomi e cognomi, oppure 70 caratteri per un singolo campo che contenga il nome completo e 255 caratteri per un indirizzo e-mail.Tra le altre cose..

Alcuni probabilmente correggono la lunghezza delle colonne

                            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

Un lungo sproloquio sui nomi personali

Un nome personale è un polinimo (un nome con più ordinabile componenti), un mononimo (un nome con un solo componente) o un pictonimo (un nome rappresentato da un'immagine - questo esiste grazie a persone come Prince).

Una persona può avere più nomi, ricoprire ruoli, come LEGALE, MARITALE, MAIDEN, PREFERRED, SOBRIQUET, PSEUDONYM, ecc.Potresti avere regole aziendali, come "una persona può avere solo un nome legale alla volta, ma più pseudonimi alla volta".

Qualche esempio:

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

O

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

O

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

O

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

Nomi, secondi nomi, cognomi possono essere più parole come "Billy Bob" Thornton, O Ralph "Vaughn Williams".

Direi di peccare in modo eccessivo.Dato che probabilmente utilizzerai varchar, qualsiasi spazio aggiuntivo consentito non utilizzerà effettivamente spazio aggiuntivo a meno che qualcuno non ne abbia bisogno.Direi che per i nomi (nome o cognome), inserire almeno 50 caratteri e per l'indirizzo e-mail, almeno 128.Ci sono alcuni indirizzi email davvero lunghi là fuori.

Un'altra cosa che mi piace fare è andare a Lipsum.com e chiedergli di generare del testo.In questo modo puoi avere una buona idea di come sono 100 byte.

Utilizzo praticamente sempre una potenza di 2 a meno che non ci sia una buona ragione per non farlo, come un'interfaccia rivolta al cliente in cui qualche altro numero ha un significato speciale per il cliente.

Se ti attieni alle potenze di 2 ti mantieni entro un insieme limitato di dimensioni comuni, il che di per sé è una buona cosa, e rende più facile indovinare la dimensione degli oggetti sconosciuti che potresti incontrare.Vedo un buon numero di altre persone che fanno lo stesso, e c'è qualcosa di esteticamente gradevole in questo.Generalmente mi dà una bella sensazione quando vedo questo, significa che il designer pensava come un ingegnere o un matematico.Anche se probabilmente mi preoccuperei se venissero usati solo numeri primi.:)

Volevo trovare lo stesso e gli standard sui dati del governo britannico menzionati nella risposta accettata sembravano l'ideale.Tuttavia nessuno di questi sembrava esistere più - dopo una lunga ricerca l'ho trovato in un archivio qui: http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/schemasstandards/e-gif/datastandards.aspx.Bisogna scaricare lo zip, estrarlo e poi aprire default.htm nella cartella html.

nome di battesimo :35 LastName:35 e -mail:255 URL:60+ secondo il server e il browser City:45 Indirizzo:90

Basta guardare nei miei archivi di posta elettronica e ci sono una serie di nomi "primi" piuttosto lunghi (ovviamente ciò che si intende per primo varia in base alla cultura).Un esempio è Krishnamurthy, lungo 13 lettere.Una buona ipotesi potrebbe essere da 20 a 25 lettere in base a questo.L'e-mail dovrebbe essere tanto più a lungo poiché potresti avere nome.cognome@qualchedominio.com.Inoltre, Gmail e alcuni altri programmi di posta ti consentono di utilizzare nome.cognome+nometag@nomedominio.com dove "qualcosatag" è tutto ciò che vuoi inserire in modo da poterlo utilizzare per ordinare le email in arrivo.Mi imbatto spesso in moduli Web che non mi consentono di inserire il mio indirizzo email completo senza considerare alcun tag.Quindi, se hai bisogno di un campo email fisso, forse qualcosa come 25,25+15@20,3 in caratteri per un totale di 90 caratteri (se ho fatto bene i conti!).

Questi potrebbero essere utili a qualcuno;

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

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

Di solito vado con:

Nome di battesimo:30 caratteri
Cognome:30 caratteri
E-mail:50 caratteri
Indirizzo:200 caratteri

Se sono preoccupato per i campi lunghi per i nomi, a volte potrei optare per 50 anche per i campi dei nomi, poiché lo spazio di archiviazione è raramente un problema al giorno d'oggi.

Se devi considerare la localizzazione (per quelli di noi al di fuori degli Stati Uniti!) ed è possibile nel tuo ambiente, suggerirei:

Definire i tipi di dati per ciascun componente del nome - NOTA:alcune culture hanno più di due nomi!Quindi digita il nome completo,

Allora la localizzazione diventa semplice (per quanto riguarda i nomi).

Lo stesso vale per gli indirizzi, tra l'altro: formati diversi!

è Varchar, vero?Quindi non importa se usi 50 o 25, è meglio essere prudenti e usare 50, detto questo credo che il tempo più lungo che ho visto sia circa 19 o giù di lì.I cognomi sono più lunghi

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top