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

StackOverflow https://stackoverflow.com/questions/30485

  •  09-06-2019
  •  | 
  •  

Pregunta

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 que coincidiera con la tabla de mi 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 importe en su respuesta.

EDITAR: no lo vi esta pregunta más amplia respecto a cuestiones similares.

¿Fue útil?

Solución

Catálogo de estándares de datos del gobierno del Reino Unido sugiere 35 caracteres para cada uno de Nombre y Apellido, o 70 caracteres para un solo campo para contener el Nombre completo.

Otros consejos

Sé que llego tarde a esto, pero agregaré este comentario de todos modos, ya que es posible que otros vengan aquí en el futuro con preguntas similares.

Tenga cuidado al modificar el tamaño de las columnas según 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 consigo.

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.

Haga que cada columna sea lo más ancha posible, teniendo en cuenta el posible recuento de filas.Utilizo 40 caracteres cada uno para el nombre, otros nombres y apellidos y nunca he encontrado ningún problema.

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

Si es el nombre completo en un campo, normalmente uso 128 - 64/64 para el nombre y el apellido en campos separados; nunca se sabe.

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

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, ignora el espacio que separa el nombre y el apellido, cambiándolo brevemente en 1 carácter.Claro, es "sólo" un carácter, pero eso podría marcar la diferencia entre alguien que ingresa su nombre completo y alguien que no.Por lo tanto, cambiaría esa sugerencia a "35 caracteres para cada nombre y apellido, o 71 caracteres para un solo campo que contenga el nombre completo".

En el Reino Unido, existen algunas normas gubernamentales que tratan con éxito a la mayor parte de la población del Reino Unido: la Oficina de Pasaportes, la Agencia de Licencias de Conductor y Vehículos, la oficina de Deed Poll y el NHS.Obviamente utilizan estándares diferentes.

Cambiar su nombre mediante Deed Poll permite 300 caracteres;

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

El NHS utiliza 70 caracteres para los nombres de los pacientes

NOMBRE DEL PACIENTE
Formato/longitud:máximo 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 produzcan: para HM Passport Office el límite es de 30 caracteres cada uno para su nombre y apellido, y para la DVLA el límite es de 30 caracteres en total para su nombre completo.

Usamos 50.

Lo que realmente estás haciendo 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 las diferentes longitudes de los 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 general que existe entre las diferentes longitudes máximas para un campo varchar, generalmente me inclinaría por no tener que truncar un nombre y hacer que el campo sea tan grande como me atrevo.

Tenga en cuenta que muchos culturas tienen 'segundos apellidos', a menudo llamados apellidos.Por ejemplo, si se trata de españoles, apreciarán tener un apellido separado de su 'apellido'.

Lo mejor es definir un tipo de datos para los componentes del nombre, usarlos para un tipo de datos para el apellido y modificarlo según la ubicación.

El nombre medio tiene unas 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) vaya a matarte hasta que obtengas varios millones de filas.

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top