¿Cuál es un límite de longitud razonable en los campos de "Nombre" de la persona?


138

Tengo un formulario web simple que permitirá a los usuarios no autenticados ingresar su información, incluido el nombre. Le di al campo de nombre un límite de 50 caracteres para coincidir con mi tabla de base de datos donde el campo es varchar (50), pero luego comencé a preguntarme.

¿Es más apropiado usar algo como el tipo de columna Texto o debería limitar la longitud del nombre a algo razonable?

Estoy usando SQL Server 2005, en caso de que eso sea importante en su respuesta.

EDITAR: No vi esta pregunta más amplia con respecto a cuestiones similares.


1
Consulte esta pregunta relacionada para mucha discusión sobre el tema.
Chris Marasti-Georg

2
Algo a tener en cuenta, en esta era de globalización, varchar NO suele ser el tipo de datos correcto, es probable que deba usar nvarchar.
Tao

@Tao: Como está usando MS SQL Server, estoy de acuerdo. Pero VARCHAR es el tipo de datos correcto en otras implementaciones de SQL que tienen mejor soporte para UTF-8.
dan04

Respuestas:


142

El Catálogo de Estándares de Datos del Gobierno del Reino Unido sugiere 35 caracteres para cada Nombre de pila y Nombre de familia, o 70 caracteres para un solo campo para contener el Nombre completo.


3
El enlace debe actualizarse a partir del 22 de octubre de 2010. Busqué en Google: sitio: *. Gov.uk Nombre "35 caracteres" y encontré este documento justice.gov.uk/guidance/docs/electoral-reg-standards.pdf
Tony R

Sus enlaces parecen ser realmente malos ... a partir de 8/2012: webarchive.nationalarchives.gov.uk/+/http://…
Thomas B

66
El nombre completo "razonable" más largo que he encontrado es "Gisele Marie-Louise Marguerite LaFleche" (39 bytes de longitud).
user1154664

Un poco más grande 54 caracteres: gw.geneanet.org/…
mestachs

3
Nueva Zelanda limita los nombres completos: deben tener menos de 100 caracteres, incluidos espacios, y no pueden contener símbolos o números. Sin embargo, supongo que los guiones están permitidos en los apellidos.
Glutnix

27

Sé que llego tarde en este caso, pero agregaré este comentario de todos modos, ya que otros pueden venir aquí en el futuro con preguntas similares.

Tenga cuidado al ajustar los tamaños de columna que dependen de la configuración regional. Para empezar, te prepara para una pesadilla de mantenimiento, dejando de lado el hecho de que las personas migran y se llevan sus nombres.

Por ejemplo, los españoles con esos apellidos adicionales pueden mudarse y vivir en un país de habla inglesa, y pueden esperar razonablemente que se use su nombre completo. Los rusos tienen patronímicos además de sus apellidos, algunos nombres africanos pueden ser considerablemente más largos que la mayoría de los nombres europeos.

Continúe ampliando cada columna lo más razonablemente que pueda, teniendo en cuenta el recuento de filas potencial. Utilizo 40 caracteres cada uno para el primer nombre, otros nombres de pila y apellidos y nunca he encontrado ningún problema.


Gracias por la respuesta, incluso si ha pasado un tiempo.
EndangeredMassa

9

Normalmente uso varchar (255) (255 es la longitud máxima de un tipo varchar en MySQL).


30
¿Y también reserva 255 caracteres de espacio en sus GUI y otros medios donde se muestra el nombre / apellido? ;-)
AndrewBourgeois

2
Solía ​​pensar: "¿Por qué no usar siempre varchar (255)?" Ahora me doy cuenta de que las restricciones de longitud son principalmente para la interfaz de usuario, y las restricciones de las que los diseñadores pueden depender al diseñar su interfaz de usuario, entonces se trata de usar demasiado espacio en la base de datos.
jdg

6

Si es el nombre completo en un campo, generalmente utilizo 128 - 64/64 para el primero y el último en campos separados, simplemente nunca se sabe.


6

@Ian Nelson: Me pregunto si otros ven el problema allí.

Digamos que tiene campos divididos. Son 70 caracteres en total, 35 para el nombre y 35 para el apellido. Sin embargo, si tiene un campo, descuida el espacio que separa el nombre y el apellido, brevemente cambiándolo por 1 carácter. Claro, es "solo" un personaje, pero eso podría marcar la diferencia entre alguien que ingresa su nombre completo y alguien que no lo hace. Por lo tanto, cambiaría esa sugerencia a "35 caracteres para cada nombre de pila y apellido, o 71 caracteres para un solo campo para contener el nombre completo".


2
El punto de seguir ese documento es para que sea interoperable con otros sistemas del gobierno del Reino Unido, de modo que no pueda aumentar individualmente los 70 a 71 y llamarlo por día, de lo contrario, los sistemas con un límite de 70 caracteres cortarán su texto. (Se supone que no debe almacenar los datos en ambos formularios dentro de su propio sistema). En realidad empeora, ya que el Nombre completo incluye no solo Familia / Dado, sino también Título y Sufijo, que también tienen un límite de 35 caracteres cada uno, para Un total de 143 caracteres máximos llenos de diversión en los campos adjuntos. Es una pena ser el desarrollador que tiene que intercambiar datos con ambas formas de almacenamiento de nombres.
mmitchell

3
Claramente, la guía está escrita desde la expectativa de que un individuo puede tener un Nombre de pila largo (hasta 35 caracteres) o un Nombre de familia largo (hasta 35 caracteres), pero es poco probable que AMBAS partes del nombre sean tan largas.
Ian Nelson

3

En el Reino Unido, hay algunas normas gubernamentales que tratan con éxito con la mayor parte de la población del Reino Unido: la Oficina de Pasaportes, la Agencia de Licencias de Conducir y Vehículos, la oficina de Encuesta de Escritura y el NHS. Usan diferentes estándares, obviamente.

Cambiar su nombre por Deed Poll permite 300 caracteres ;

No hay un límite legal en la longitud de su nombre, pero imponemos un límite de 300 caracteres (incluidos los espacios) para su nombre completo.

El NHS utiliza 70 caracteres para los nombres de los pacientes.

NOMBRE DEL PACIENTE
Formato / longitud: max an70

La oficina de pasaportes permite 30 + 30 primero / último y las licencias de conducir (DVLA) son 30 en total.

Tenga en cuenta que otras organizaciones tendrán sus propias restricciones sobre lo que mostrarán en los documentos que producen: para HM Passport Office, el límite es de 30 caracteres cada uno para su nombre y apellido, y para el DVLA, el límite es de 30 caracteres en total para su nombre completo.



2

Lo que realmente está preguntando es una pregunta relacionada, pero sustancialmente diferente: ¿con qué frecuencia quiero truncar nombres para que quepan en la base de datos? La respuesta depende tanto de la frecuencia de diferentes longitudes de nombres como de las longitudes máximas elegidas. Esta preocupación se equilibra con las preocupaciones sobre los recursos utilizados por la base de datos. Teniendo en cuenta la poca diferencia de gastos generales entre las diferentes longitudes máximas para un campo varchar, generalmente me equivoco al no tener que truncar un nombre y hacer que el campo sea tan grande como me atreví.


1

Tenga en cuenta que muchas culturas tienen 'segundos apellidos' a menudo llamados apellidos. Por ejemplo, si está tratando con personas españolas, apreciarán tener un apellido separado de su 'apellido'.

La mejor opción es definir un tipo de datos para los componentes del nombre, usarlos para un tipo de datos para el apellido y ajustar según la configuración regional.


No hay ninguna ventaja en hacer que los límites sean más pequeños en entornos locales que estadísticamente tienen valores más pequeños: el tamaño del campo no afecta el espacio ocupado, a menos que algunos valores realmente ocupen esos caracteres adicionales permitidos (y eso significa que tomó la decisión correcta de todos modos) !
Tao

0

El primer nombre promedio es de aproximadamente 6 letras. Eso deja 43 para un apellido. :) Parece que probablemente podrías acortarlo si quieres.

La pregunta principal es ¿cuántas filas crees que tendrás? No creo que varchar (50) te vaya a matar hasta que obtengas varios millones de filas.


66
Si tiene 50 millones de valores entre 10 y 15 caracteres en una columna varchar (20), y los mismos 50 millones de valores en una columna varchar (50), ocuparán exactamente el mismo espacio. Ese es el objetivo de varchar, en oposición a char.
Tao


0

dependiendo de quién va a utilizar su base de datos, por ejemplo, los nombres africanos lo harán con varchar (20) para el apellido y el nombre separados. sin embargo, es diferente de una nación a otra, pero por el bien de guardar los recursos y la memoria de la base de datos, separe los campos de apellido y nombre y use varchar (30), creo que funcionará.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.