2010-02-25 11 views
10

Recientemente he estado reflexionando sobre los nombres y la forma en que los almacenamos. En general, una persona tendrá un primer, último y segundo nombre. Si quieres ser particularmente completo, puedes agregar un campo de sufijo, quizás incluso un campo de título. Entonces, si alguien quiere ser "Dr. John Q. Public III", pueden hacerlo. Pero una persona puede tener más de un sufijo honorífico y más de uno. En ese caso, también podría tener un apellido con guiones. ¿Y qué si eres "Dr. John Quintus Maximus Public-Doe III Ph.D. MD. RPh."? Usted podría hacer: Forma estándar de almacenar nombres en una base de datos

 
Persons 
    PersonID 
    Prefix 
    FirstName 
    MiddleName 
    LastName 
    Suffix 
PersonHonorifics 
    PHID 
    PersonID 
    Honorific 
PersonNames 
    PANID 
    PersonID 
    NameOrder 
Pero luego tiene que ser un oso con quien trabajar, y nadie termina usándolo de todos modos.

¿Existe una "forma estándar" generalmente aceptada para almacenar datos de nombre?

+0

depende de sus necesidades. ¿Necesita buscar, por ejemplo? por nombre o grupo por prefijo? ¿Cuántos nombres almacenará? ¿Qué tipo de operaciones realizarás con estos nombres? – aefxx

+1

¿Por qué alguna vez procesarías los Honorifics por separado? ¿Va a manejar órdenes de caballería donde un KG está clasificado antes de un CGB? –

+3

@ S.Lott Quería tener una discusión académica independiente de los requisitos y me pareció un buen ejemplo en el que hubo una compensación. En un escenario en el que deseaba consultar una población por una cierta combinación de credenciales (por ejemplo: todos los MCDBA que también son MCITP), entonces la versión normalizada podría ser preferible a un "campo basura". –

Respuesta

4

prefiero AD naming style

First Name givenName 
Last Name sn 
Initials initials 
Display Name displayName 
Description description 
Office physicalDeliveryOfficeName 
Telephone Number telephoneNumber 
Telephone: Other otherTelephone 
E-Mail mail 
Web Page wWWHomePage 
Web Page: Other url 
+1

+1: Nombre, Apellido (para ordenar) y Nombre para mostrar (para incluir todas las decoraciones que a las personas les gusta tener). Y razonablemente compatible con otras formas de almacenar información sobre personas. Para eso están LDAP (y AD). –

+15

+1 (a LDAP) para encapsular los campos más necesarios de forma estándar, -100 para denominación incoherente de rutas ('givenName',' sn' ... What?) Y bizarre camelCaps ('wWWHomePage'? ¿En serio?). –

1

Comenzaría mirando el estándar vCard; necesita un poco de normalización

2

La forma estándar es observar sus requisitos y almacenar los datos requeridos. Si bien este es un problema académico interesante, la verdad es que, en las docenas de sistemas en los que he trabajado, el nombre y el apellido suelen ser suficientes. Algunas veces almacenaremos una inicial en el medio, pero la mayoría de las veces incluso eso no es requerido.

Si necesita almacenar todo el Dr. John Quintus Maximus Public-Doe III Ph.D. MARYLAND. La información de RPh, entonces inventas almacenamiento para eso. Pero mientras su apellido permita suficientes datos, entonces el Dr. Maximus puede escribir tanto o tan poco como le gustaría que se almacenara sobre su nombre y títulos.

0

Desde mi experiencia, es por lo general

  • Título (como FK, que une a una tabla de títulos)
  • Nombre de pila
  • Segundo nombre
  • Apellido
  • Anterior apellido (si es necesario, para detectar el cambio de nombre de las mujeres casadas)
  • Sufijo

Todo lo demás tiende a ser excesiva (a no ser que necesita en su aplicación específica) y un dolor para gestionar

1

La siguiente es una mala idea (véase el primer comentario):

KISS! Libérate y utiliza "Nombre completo" :-) (En caso de que lo necesites, la última palabra de la cadena es "Apellido")

Siempre puedes utilizar: Dear "Fullname".

Cómo maneja los honoríficos depende de sus necesidades y su audiencia. Puedes coleccionar "saludo".

+2

Mala idea en general. Sí, puede tener un campo de nombre completo, pero debe compilarse en archivos separados, de lo contrario, ordenar por apellido o serrar por apellido significa usar '% Smith%', lo que significa que no puede usar el índice. Nunca almacenaré solo fullname. – HLGEM

+0

Buen punto :-) Cambié la respuesta. (Puede ser para algunas aplicaciones web públicas esto sería lo suficientemente bueno - donde aplica YAGNI y ni siquiera recoge el apellido. (Pero esta no era la pregunta). ... – Robert

+1

No ordenar por "apellido", problema resuelto. –

1

Debe diseñar su formato de almacenamiento en función de cómo espera utilizar los datos. Si necesita saber la diferencia entre el primer nombre (s) y apellido (s), entonces tenga columnas para cada uno. Del mismo modo, si a usted (o su empresa) le preocupan los sufijos/prefijos/nombres intermedios/etc ... lo suficiente como para querer usarlos de una manera específica (por ejemplo, correo no deseado a todos los clientes que son médicos), tenga columnas para cada uno.Pero si todo lo que necesita es identificarlos en un informe, o en un saludo por correo electrónico, considere un enfoque más fácil de: First_names, Last_Names, y déjelo así.

Pregúntese qué beneficio realista obtendría su organización almacenando cada componente del nombre de una persona por separado. Mire governmentforms y vea cuánto information acerca del nombre de una persona que sienten la necesidad de capturar.

0

A menos que se trate de un grupo especializado de médicos como personas donde podría necesitar almacenar todos los sufijos de forma que sea fácil buscar (a menudo buscamos sufijo profesional aquí), entonces puede almacenarlos en el campo de apellido o en un campo de sufijo separado (hace que buscar a todas las personas llamadas smith sea más confiable si el sufijo es un campo separado). pero con una lista delimitada por comas Lo mismo para los prefijos. Sugeriría que firstname, lastname e middlename (ayuda a distinguir dúas y sin el archivo es menos probable que se coloque incluso si el usuario lo sabe) son generalmente necesarios para poder buscar e informar adecuadamente sobre los datos. También sugiero un campo calculado que formatea el nombre completo de la forma que desea que se muestre en los correos electrónicos, etc.

13

A veces solo cree que conoce sus requisitos. La industria editorial de libros tiene un estándar de información llamado ONIX que usa lo siguiente. Es interesante observar que los nombres Primero y Medio se combinan en un campo.

  • Títulos antes de nombres (por ejemplo: profesor, SAR el Príncipe, Saint)
  • nombres antes de los nombres clave (nombres y/o las iniciales del segundo - por ejemplo: Brendan EJ)
  • prefijo a los nombres de teclas (por ejemplo: furgoneta, como en Ludwig van Beethoven)
  • nombre clave (apellido)
  • nombres después de los nombres clave (por ejemplo: Ibrahim como en Anwar Ibrahim)
  • sufijo a los nombres clave (ej: Jr, III)
  • Quali caciones y honores después de los nombres clave (por ejemplo: MB, PhD)
  • Títulos después de los nombres (por ejemplo: Duque de Edimburgo)
+0

Me encanta esta porque funciona internacionalmente. También encontré un enlace al documento real: http://www.editeur.org/93/Release-3.0-Downloads/#Specification – danielson317

+0

Guau, esto es genial. Puede usar esto uno yo mismo. –

Cuestiones relacionadas