2009-02-04 11 views
8

En lo que respecta al diseño de la base de datos, ¿cuáles son los tamaños de columna recomendados para campos tales como los primeros, medios y últimos? Además, ¿es seguro el carácter estándar para un segundo nombre o se debe dejar espacio adicional para las iniciales del medio?¿Cuáles son los tamaños de columna de base de datos recomendados para los nombres?

Específicamente, estoy buscando tamaños que permitan que esto sea algo de lo que no tenga que preocuparme para el uso internacional. He visto algunas iniciales del medio que son dos caracteres, así que dudo que un solo personaje sea una buena idea, pero tengo curiosidad por ver si ya hay alguna guía.

+0

Consulte la pregunta SO http://stackoverflow.com/questions/128099/what-is-the-longest-human-name-you-can-expect para saber por qué muchas suposiciones (longitud del primer, segundo nombre o apellido, número de partes distintas en nombres, etc.) puede ser completamente incorrecto para otros países. – mghie

+0

@mghie - Por eso estoy tratando de ver cuáles son las pautas recomendadas. Es probable que sea muy difícil usar un tamaño que atrape todo, pero si podemos captar el 99,9% de los nombres y apellidos y dar suficiente espacio para varias iniciales del medio, estaríamos bien. – rjzii

+0

@Rob: Bueno, el enlace a la otra pregunta estuvo ahí por una razón: simplemente no es tan simple. No todos tienen un primer nombre y un apellido, y tal vez algunas iniciales del medio. Consulte las respuestas en la pregunta vinculada, algunas tratan específicamente las necesidades de las columnas de la base de datos para los nombres. – mghie

Respuesta

8

ISO no ha emitido estándares para el nombre de humanos (todavía), aunque escuché que se está pasando un borrador preliminar al más alto nivel.

:)

serio, 64 o así debería ser adecuada para el 99,99% de los nombres y apellidos - en cualquier idioma. Nunca he visto nada más que un char por un MI (aunque tienes razón, mucha gente tiene más de uno).

BTW: A menos que me equivoque, las direcciones de correo electrónico, técnicamente, pueden tener hasta 320 caracteres de longitud y pueden contener. # $% & '* + -/=?^_ `{| } ~ y. siempre que eso. no es el primero ni el último personaje, ni puede aparecer dos o más veces consecutivamente.

PS. El nombre de mi conejo mascota es "Su Majestad Imperial Theopolops Bunny Galore". Huelga decir que esto fue truncado en la base de datos del veterinario. Creo que lo tienen como "Su Maj Imperial". Así que va.

1

No estoy seguro acerca de la longitud, pero si va a ser internacional, entonces definitivamente vaya con nvarchar ya que esto admitirá cualquier carácter ASCII "extendido" que pueda encontrar. La otra buena parte de nvarchar es que tiene una longitud máxima fija, pero no rellena los valores a esa longitud.

En otras palabras, mi nombre sería almacena como

'Andrew' 

en un campo nvarchar(20) pero podría ser almacenada como

'Andrew    ' 

en un campo char(20). Así que con esto en mente, tomaría un gran número de nombres con la idea de que no perderás ese espacio extra usando nvarchar.

+0

Esto ahorrará espacio, pero es más eficiente leer/escribir en una tabla con registros de tamaño fijo. –

+1

@Dana - Me gustaría estar muy seguro de que necesito la eficiencia antes de asumir la complejidad adicional de tener que recortar los valores que recupero. Mi sensación personal es que debe usar distintos tipos para variar los datos y tipos fijos para los datos fijos. S/N puede ser char (1), pero los nombres deben variar. – tvanfosson

+1

Está comparando manzanas y naranjas: la versión no internacionalizada de nvarchar (20) es varchar (20), que no se rellenará con espacio ya que tanto nchar (20) como char (20) funcionarán. –

2

Personalmente creo que se reduce a la cantidad de datos que razonablemente espera almacenar. Incluso si va a tener un millón de nombres, probablemente no estaría de más usar un char (64) o más grande para cada nombre. Si el tamaño es un problema, puede comenzar con 32 y aumentar el tamaño con la columna alter, según sea necesario.

5

Necesita 590 caracteres combinados si desea admitir el world's longest name.

+1

Espero que esta sea una de las pocas respuestas en SO que pueda enlazar a www.museumofhoxes.com como un enlace de soporte válido. :-) –

+2

Cuando la wikipedia falla, ve al siguiente nivel ... :) – Jeb

Cuestiones relacionadas