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.
Respuestas:
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.
fuente
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.
fuente
Normalmente uso varchar (255) (255 es la longitud máxima de un tipo varchar en MySQL).
fuente
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.
fuente
@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".
fuente
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 ;
El NHS utiliza 70 caracteres para los nombres de los pacientes.
La oficina de pasaportes permite 30 + 30 primero / último y las licencias de conducir (DVLA) son 30 en total.
fuente
Usamos 50.
fuente
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í.
fuente
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.
fuente
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.
fuente
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á.
fuente