Domanda

Ho un semplice modulo web che consentirà agli utenti non autenticati di inserire le proprie informazioni, incluso il nome.Ho assegnato al campo del nome un limite di 50 caratteri in modo che coincidesse con la tabella del mio database in cui il campo è varchar(50), ma poi ho iniziato a chiedermi.

È più appropriato utilizzare qualcosa come il tipo di colonna Testo o dovrei limitare la lunghezza del nome a qualcosa di ragionevole?

Sto utilizzando SQL Server 2005, nel caso sia importante nella tua risposta.

MODIFICARE: Io non ho visto questa questione più ampia riguardanti questioni simili.

È stato utile?

Soluzione

Catalogo degli standard sui dati del governo britannico suggerisce 35 caratteri per ciascuno dei nomi e cognomi, oppure 70 caratteri per un singolo campo che contenga il nome completo.

Altri suggerimenti

So di essere in ritardo su questo, ma aggiungerò comunque questo commento, poiché altri potrebbero venire qui in futuro con domande simili.

Fare attenzione a modificare le dimensioni delle colonne in base alle impostazioni locali.Per cominciare, ti prepara per un incubo di manutenzione, lasciando da parte il fatto che le persone migrano e portano con sé i loro nomi.

Ad esempio, gli spagnoli con questi cognomi aggiuntivi possono trasferirsi e vivere in un paese di lingua inglese e possono ragionevolmente aspettarsi che venga utilizzato il loro nome completo.I russi hanno patronimici oltre ai loro cognomi, alcuni nomi africani possono essere notevolmente più lunghi della maggior parte dei nomi europei.

Cerca di rendere ogni colonna quanto più ampia possibile, tenendo conto del potenziale conteggio delle righe.Utilizzo 40 caratteri ciascuno per nome, altri nomi e cognome e non ho mai riscontrato problemi.

Di solito utilizzo varchar(255) (255 è la lunghezza massima di un tipo varchar in MySQL).

Se in un campo c'è il nome completo, di solito scelgo 128 - 64/64 per il nome e l'ultimo in campi separati: non si sa mai.

@Ian Nelson:Mi chiedo se altri vedono il problema lì.

Diciamo che hai campi divisi.Sono 70 caratteri in totale, 35 per il nome e 35 per il cognome.Tuttavia, se hai un campo, trascuri lo spazio che separa il nome e il cognome, cambiandoti brevemente di 1 carattere.Certo, è "solo" un carattere, ma ciò potrebbe fare la differenza tra qualcuno che inserisce il proprio nome completo e qualcuno che non inserisce il proprio nome completo.Pertanto, cambierei questo suggerimento in "35 caratteri per ciascuno di nome e cognome, o 71 caratteri per un singolo campo per contenere il nome completo".

Nel Regno Unito, esistono alcuni standard governativi che si occupano con successo della maggior parte della popolazione britannica: l'ufficio passaporti, l'agenzia per le licenze dei conducenti e dei veicoli, l'ufficio Deed Poll e l'NHS.Usano standard diversi, ovviamente.

Cambiare il tuo nome tramite Deed Poll consente 300 caratteri;

Non esiste un limite legale alla lunghezza del tuo nome, ma imponiamo un limite di 300 caratteri (spazi inclusi) per il tuo nome completo.

IL NHS utilizza 70 caratteri per i nomi dei pazienti

NOME PAZIENTE
Formato/lunghezza:massimo an70

L'Ufficio Passaporti consente 30+30 primo/ultimo e patenti di guida (DVLA) sono 30 in totale.

Tieni presente che altre organizzazioni avranno le proprie restrizioni su ciò che mostreranno sui documenti che producono: per HM Passport Office il limite è di 30 caratteri ciascuno per il tuo nome e cognome, e per il DVLA il limite è di 30 caratteri in totale per il tuo nome e cognome.

Ne usiamo 50.

Quello che stai veramente chiedendo è una domanda correlata, ma sostanzialmente diversa:quanto spesso voglio troncare i nomi per adattarli al database?La risposta dipende sia dalla frequenza delle diverse lunghezze dei nomi sia dalla lunghezza massima scelta.Questa preoccupazione è bilanciata dalle preoccupazioni relative alle risorse utilizzate dal database.Considerando la minima differenza di sovraccarico tra le diverse lunghezze massime per un campo varchar, generalmente sbaglierei per non essere mai costretto a troncare un nome e rendere il campo grande quanto ho osato.

Nota che molti culture hanno "secondi cognomi" spesso chiamati cognomi.Ad esempio, se hai a che fare con spagnoli, apprezzeranno avere un cognome separato dal loro "cognome".

La soluzione migliore è definire un tipo di dati per i componenti del nome, usarli per un tipo di dati per il cognome e modificarli a seconda delle impostazioni locali.

Il nome medio è di circa 6 lettere.Rimangono 43 come cognome.:) Sembra che potresti probabilmente accorciarlo se lo desideri.

La domanda principale è: quante righe pensi di avere?Non penso che varchar(50) ti ucciderà finché non otterrai diversi milioni di righe.

a seconda di chi utilizzerà il database, ad esempio i nomi africani andranno bene con varchar(20) per il cognome e il nome separati.tuttavia è diverso da nazione a nazione, ma per il bene di risparmiare risorse e memoria del database, separare i campi del cognome e del nome e utilizzare varchar(30) pensa che funzionerà.

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