Come modellare più di un 'cognome'?

11

Nei paesi di lingua spagnola usiamo più di un cognome, come:

First name ↘                           ↙ Last name
                Pedro Arturo Rodríguez Loyola
        Middle name ↗                               ↖ (?)

Sto provando a modellare i dati per il nome del paziente. Nel nostro paese è importante, quindi non posso trascurare il secondo cognome, ma mi piacerebbe creare un'applicazione che abbia un senso per altri sviluppatori, specialmente da paesi di lingua inglese.

Ho creato una domanda simile su English.SE , ha alcune informazioni sul perché è importante mantenere entrambi i valori.

    
posta Pablo Olmos de Aguilera C. 26.03.2014 - 16:01
fonte

6 risposte

18

Q: How does a DBA count?

A: 0, 1, many

Un individuo ha uno o più nomi e uno o più nomi di famiglia, e possibilmente un titolo. Questi nomi hanno un ordine per loro. Spetta alla localizzazione e alla cultura determinare come fare riferimento a un individuo.

ContactId
NamePart {"John", "Smith", ... }
NameType {title, given, family, ???}
Order {1, 2, 3, ... }

Per Pedro Arturo Rodríguez Loyola (contatto # 1), avresti quattro righe:

1 / Pedro     / given  / 1
1 / Arturo    / given  / 2
1 / Rodríguez / family / 3
1 / Loyola    / family / 4

In questo modo non è limitato a una data struttura, ma ha ancora senso per un dato contatto. Cosa fai quando hai qualcuno con 3 o 4 dati o nomi di famiglia? o un nome da nubile?

Nota che ho cambiato l'ordine da una precedente revisione di questa risposta - l'ordine è un ordine sull'intero nome piuttosto che un semplice ordine all'interno del nome perché in alcune culture, il nome di famiglia viene prima, tu potrebbe avere parti del titolo divise "Sir John Smith II".

Letture aggiuntive

risposta data 26.03.2014 - 16:20
fonte
10

Questo potrebbe aiutare. Il post è umoristico, ma perspicace.

[Nome] [Cognome] non è una regola universale per i nomi. È solo comune in cui vivi. Se imponi delle regole in questo, prima o poi avrai persone che non possono essere aggiunte al tuo sistema.

In pratica, assicurati di imporre il minor numero possibile di restrizioni e di consentire la flessibilità tra il nome memorizzato effettivo e qualsiasi altro extra.

Vorrei andare con qualcosa del genere:

  • Nome visualizzato (per nomi coerenti durante la visualizzazione di moduli / dati): (dovrebbe essere [prima] [ultimo]).
  • Altri nomi / nome completo (per la ricerca, corrispondenza più precisa, ecc.). Qui, consentire all'utente di scrivere qualsiasi cosa, fino a una determinata durata; la lunghezza dovrebbe essere più di quanto si pensi dovrebbe essere abbastanza ragionevole - ad es. se pensi che 40 caratteri dovrebbero essere sufficienti, metti 500 :)).
  • Indirizzamento (Mr, Mrs, Ms, Jr, Sr, -san, valore personalizzato (come Tov.) ecc.)
  • ID interno (questo ID dovrebbe identificare in modo univoco ogni persona all'interno della tua applicazione, prevenendo le collisioni di nome).

Ad esempio, il mio nome non è scritto correttamente nella maggior parte delle lingue europee, a causa di segni diacritici specifici rumeni (quindi, ogni volta che scrivo il mio nome fuori dal mio paese, tecnicamente lo scrivo in modo errato - così le persone possono leggerlo e pronunciarlo ).

Alcuni esempi di nomi interessanti e link:

link

link

link

link

    
risposta data 26.03.2014 - 16:20
fonte
0

Non è una cosa complicata ..... o mi manca qualcosa.

Hai questi campi: name (varchar), lastname (varchar).

Quindi un modulo per riempire il nome completo, esempio: Jorge Patricio e il cognome Pèrez Gonzáles .

Nella ricerca, hai molti operatori di confronto, ad esempio in MySQL, come like che ti aiuterà a cercare.

Per lo più i cognomi composti sono sempre in ordine. Pérez González dice principalmente il suo cognome in questo modo, e non in ordine inverso.

Disattivi il tuo database in altro modo.

    
risposta data 26.03.2014 - 21:34
fonte
0

Esistono tre tipi di nomi personali: Polynyms (nomi con più componenti), Monomon (nomi con un solo componente, ex "Cher") e Pictonyms (nomi rappresentati da immagini, ex The Artist ).

Una persona può avere più nomi, giocando ruoli , ad esempio Nome legale e Nome preferito.

Un polinodo ha diversi componenti, di cui dovrebbero essere richiesti nome e cognome. Ci sono alcuni tipi di cognomi:

  1. Cognome normale (Jones)
  2. cognomi a doppia canna ("Vaughn Williams" o "Louis-Dreyfus")
  3. Cognome vero composto {givenNome: "Juan Pablo" cognome: "Fernández de Calderón", secondarioSignore: "García-Iglesias"}

3 è importante perché ci si aspetterebbe di essere indirizzato come il signor Fernández de Calderón , non il signor Fernández de Calderón García-Iglesias.

Quindi, in pratica, hanno un campo obbligatorio di cognome e un campo secondarioNome secondario nullable.

    
risposta data 18.07.2014 - 21:53
fonte
0

Come modellate i vari componenti del nome di qualcuno? Non fai . Invece di modellare campi separati per tutti i componenti del nome legale di qualcuno, oltre al loro saluto preferito, appelazione, nome informale, nome utente, nick-name e handle, modella solo ciò che ti interessa.

Le probabilità sono che al tuo sistema interessa solo al massimo quattro "nomi" per qualcuno:

  1. Un Nome visualizzato che consente loro di sapere che sono collegati al sistema.
  2. Un nome informale con il quale li chiameresti in una telefonata.
  3. Un nome formale con il quale si farebbe riferimento a loro sulla corrispondenza.
  4. Un Nome di ordinamento che esprime # 2 in modo che venga ordinato in un elenco.

Molti sistemi usano semplicemente il nome formale di qualcuno per il # 1 e il # 2, lasciando gli unici nomi a cui tieni come "una stringa che rappresenta il nome dell'utente" e "una stringa che rappresenta il modo in cui il primo deve essere ordinato."

Da una prospettiva di modellazione dei dati, definisci solo quei valori che avresti effettivamente bisogno. Il modo migliore per ottimizzare la memorizzazione di questi valori è un dettaglio di implementazione - uno che causerà solo mal di testa se si ottimizza troppo. (Certo, potresti "memorizzare" solo un nome e un cognome, ma cosa faresti per qualcuno che ha un solo nome?)

    
risposta data 18.07.2014 - 22:31
fonte
-1

Consideriamo questo in un altro modo.

Il tuo sistema deve connettersi ad altri sistemi, non importa quanto tu sia flessibile se non lo sono. Quindi, con che cosa devono fare i sistemi per trasferire i dati?

Quando telefono al mio medico per un appuntamento mi chiedono la mia data di nascita, i sistemi mostrano loro un elenco di persone che corrispondono, poi mi chiedono il mio nome, infine chiedo il mio indirizzo per confermare che hanno selezionato la persona giusta.

Il dottore ha bisogno di sapere il nome che mi assegna quando mi parla; hanno anche bisogno di sapere il nome per scrivere una lettera se mi scrivono.

Quindi non solo un singolo campo di testo che consente spazi. Non c'è motivo di separare anche il primo dal cognome, a meno che non vengano elaborati nello stesso modo.

    
risposta data 26.03.2014 - 19:29
fonte

Leggi altre domande sui tag