Modellazione del nome e del cognome separatamente

31

Quali argomenti dovrebbero prendere in considerazione qualcuno quando si progetta un nuovo sistema e si deve memorizzare il nome di una persona come un campo o separatamente come nome / cognome?

Professionisti per singolo campo:

  • Interfaccia utente semplificata
  • Nessuna ambiguità quando si tenta di inserire il nome di una persona, che ha un nome molto lungo (spesso non evidente che è il cognome / nome ..)
  • Minore complessità nella gestione dei titoli (ad esempio, non è necessario inserire campi separati per "M.D" o "Dr.")

Professionisti per il campo diviso:

  • La comunicazione personalizzata è possibile "Gentile Signor X" o "Cara Julie"
  • Se un servizio web consumato ha bisogno del nome / cognome separatamente, può essere fornito facilmente.
  • Scelta migliore per qualsiasi settore con requisiti di identificazione rigorosi (ad esempio medici, enti governativi, ecc.)
  • Scelta più sicura, in quanto puoi sempre tornare all'alternativa a campo singolo

Vedi qualche argomento aggiuntivo che non è elencato sopra?

Aggiornamento: la domanda è, quali aggiuntivi (= non elencati nella domanda) argomenti possono essere elencati per ciascuna soluzione. Penso che dare opinioni invece di possibili pro e contro spinge la discussione nel modo sbagliato. Ogni sviluppatore deve prendere la sua decisione su questo problema, lo scopo di questa domanda è di assemblare un elenco di argomenti non banali che possono essere valutati se necessario.

    
posta Istvan Devai 01.08.2017 - 12:40
fonte

7 risposte

49

Il nome e il cognome non sono concetti utili. I nomi funzionano diversamente nei diversi paesi. Nella maggior parte dei paesi asiatici, il nome della famiglia è scritto per primo, ma è ancora usato per l'ordinamento, quindi puoi metterlo in nome, e l'ordinamento sarà sbagliato, o nel cognome, e la visualizzazione sarà. E poi ci sono paesi come l'Islanda in cui non usano affatto nomi di famiglia, ma invece il nome di battesimo del padre. Quindi ordinano semplicemente per nome.

I termini "nome dato" e "cognome" (o "cognome") sono migliori a questo riguardo, ma vorrei evitarli a meno che non sia assolutamente necessario (cioè documenti ufficiali come i passaporti li hanno, quindi ne hai bisogno ), perché rendono le cose più complicate.

  • Personalised communication is possible "Dear Mr X" or "Dear Julie"

Tranne che non hai idea se chiamare una persona data con il loro nome, cognome o cosa. E non farmi iniziare sulle lingue che hanno accusativo - non puoi derivare accusativo da nominativi in generale. No, è meglio se chiedi semplicemente all'utente come chiamarli.

  • If a consumed web service needs the first / last name separately, it can be provided easily.

Se . Se dipendi da un altro servizio, sei bloccato alle loro scelte sbagliate. Non è un vantaggio per i tuoi progetti.

  • Better choice for any industry with strict identification requirements (e.g. medical, government, etc.)

No, è una scelta sbagliata per questi. I documenti ufficiali generalmente usano i termini "nome dato" e "cognome" (o "cognome"), che sono meno ambigui.

  • Safer choice, as you can always go back to the single field alternative

In realtà, a causa dell'ambiguità con i nomi asiatici, non è così chiaro che puoi.

    
risposta data 01.08.2017 - 13:27
fonte
31

L'unico argomento che conta è quali sono i requisiti del tuo sistema?

Hai bisogno di occuparti di una sola cultura? Se è così, sii conforme a quella cultura. In caso contrario, pianificare l'internazionalizzazione (come altri hanno sottolineato).

Hai bisogno di ottenere dati per gestire moduli governativi, assistenza sanitaria o altri requisiti legali / di sistema? Segui qualunque cosa detta. Se questo significa nome e cognome, fallo. Se significa qualcosa di diverso, fallo.

Hai un requisito per un'API con nome e cognome (o è ragionevolmente probabile, abbastanza da giustificare l'ignoranza di YAGNI)? Fai ciò che ha senso lì.

Se hai bisogno di comunicazioni personalizzate, è ragionevole chiedere a qualcuno il loro nome preferito e archiviarlo?

I requisiti del tuo sistema dovrebbero determinare ciò che fai. Fai quello che devi e YAGNI il resto.

    
risposta data 01.08.2017 - 15:45
fonte
5

Se hai più di un modo per visualizzare e / o utilizzare i nomi, probabilmente avrai bisogno di campi separati. Insieme all'inserimento dei dati, è possibile fornire un feedback per mostrare all'utente come verrà utilizzato. Il modo in cui li combini, potrebbe portare alla conversione in un singolo campo in futuro.

Avere alcune etichette che mostrano: Saluto o nome visualizzato: Nome + Cognome Organizzazione / Ordinamento: Cognome, Nome

Quando non sei sicuro di come verrà utilizzato in futuro, inizia con i nomi split e poi puoi combinarli in un singolo campo quando ti rendi conto che è tutto ciò di cui hai veramente bisogno. Non è che sia difficile scrivere un algoritmo per suddividere un singolo campo di nome in nome e cognome, ma commetterai un errore su alcuni e alla gente non piacciono davvero gli errori con i loro nomi. Con i campi divisi, gli utenti possono regolare come inseriscono il loro nome quando vedono come viene utilizzato. Combinarli in un campo a nome singolo permanente è meno rischioso.

    
risposta data 01.08.2017 - 13:42
fonte
5

Sono d'accordo con molto di ciò che ha detto @JanHudec, anche se mi piacerebbe approfondire un po 'questo:

  • Devi sapere quali sono le tue reali esigenze, ma è più facile combinare le informazioni piuttosto che dividerle una volta che è stata combinata di nuovo.
  • L'ordinamento sarà sempre una sfida, in quanto le regole possono variare tra le diverse aree e culture.
  • Molte culture non corrispondono alle tue, il che porta a cattive ipotesi. (Questo è il punto più importante di Jan)

La terminologia è importante

Termini come nome dato e cognome o cognome hanno un significato semantico e il tuo database dovrebbe sempre riflettere la semantica dei tuoi dati. Termini come nome e cognome hanno un significato posizionale, di solito basato su idee inglesi e americane su come funzionano i nomi. Utilizza la terminologia appropriata per la semantica dei tuoi dati.

Quanto hai bisogno di scomporlo?

Ci sono concetti di titolo (Mr. Dr. Mrs. ecc.) o ordinale (Jr., Sr., III, ecc.), e persino < em> certificazioni (PhD, MS, PCAM, ecc.) che possono essere importanti a seconda del contesto e dello scopo.

Molti locali hanno il concetto di nomi di famiglia multipli (paterni e materni), e alcuni non ne hanno. Quando compilano i moduli, a volte le persone devono fare scelte difficili sul nome da utilizzare, ad esempio usando il cognome paterno per il "cognome" in una forma americana, o arrivando con un cognome basato sul nome del padre (Janson ).

Mentre in America è comune avere uno o più nomi secondari, spesso viene ignorato al di fuori della tua famiglia.

Ordinamento

Aiuta ad avere un campo dedicato per il nome di ordinamento. In questo modo puoi disambiguare le regole quando crei il record. Garantisce inoltre che i nomi siano ordinati nell'ordine corretto oltre i confini internazionali.

Pratiche comuni

I tuoi requisiti reali stabiliscono la correttezza dei nomi. Se stai creando un sito web governativo o bancario, hai più requisiti per l'archiviazione e la gestione dei nomi rispetto a qualcosa di informale come Facebook.

Linee guida informali

  • Avere un campo che descrive come l'utente vuole essere conosciuto
  • Ordina e visualizza usa quel solo nome

Linee guida semi formali

  • Avere un campo per un soprannome o come l'utente vuole essere indirizzato
  • Hai due campi, uno per il nome dato e uno per il cognome (il cognome dovrebbe essere facoltativo)
  • Calcola un campo di ordinamento in base alla locale e alla combinazione data / cognome
  • Utilizza il soprannome quando indirizzi direttamente l'utente
  • Utilizza il nome formale quando elenchi le persone

Linee guida formali

  • Questi sono dettati dalle politiche e procedure esistenti per l'entità che stai supportando
  • Sono necessari tanti campi quanti sono il numero massimo di parti del nome che sosterrai, chiamate semanticamente per quello che sono.
  • Includi un campo di ordinamento che gestisce l'ordinamento come faresti nel caso semi-formale
  • Anche la visualizzazione è solitamente dettata da politiche e procedure esistenti. Devi familiarizzare con loro.
risposta data 01.08.2017 - 18:21
fonte
4

A parte ciò che @JanHudec ha sottolineato e con il quale sono d'accordo, vale la pena notare che in molti paesi le persone hanno più di un cognome, quindi il campo del cognome potrebbe essere irrilevante. Per esempio. in Spagna le persone hanno due cognomi, e ne usano solo uno o entrambi a seconda della situazione.

Inoltre non dovresti personalizzare le comunicazioni in base alle tue supposizioni come in alcune culture potresti sembrare scortese quando chiami le persone con il loro cognome e in caso contrario potrebbe essere il contrario.

Inoltre, alcune culture pongono l'accento su forme come "Mrs" vs "Ms", e possono anche combinare questa parola con il nome o il cognome a seconda di un caso particolare.

Quindi vorrei orientarmi verso una soluzione in cui si ha un singolo campo di nome e forse campi aggiuntivi che l'utente riempie che suggeriscono come rivolgersi all'utente - qualcosa di simile a quello che fanno molte compagnie aeree quando si acquista un biglietto online. Questo può anche risolvere il problema di come dividere i nomi se ne hai bisogno per un servizio web esterno che hai citato.

    
risposta data 01.08.2017 - 13:47
fonte
4

Per aggiungere ancora di più a ciò che hanno sottolineato @JanHudec e @KjMag, anche nelle culture / lingue molto vicine all'inglese diventa un problema. Prendi tedesco per esempio. Hai il concetto di Vornamen, Nome, Nachnamen, Cognome e Rufname, il nome che ti chiami. Prendi mio padre ad esempio, ha 3 nomi di battesimo, sul suo certificato di nascita sono elencati nell'ordine Christoph Stephan Andreas. E lui ha un cognome. Di cosa pensi che sia il nome con cui è chiamato?

La risposta corretta: Andreas. Questo è il suo Rufname, in America lo mette come il suo nome per adattarsi al modello americano. Quindi potresti supporre che in Germania l'ultimo dei tuoi nomi sia il nome che ti chiami, ma poi hai mio fratello: Christoph Sebastian Herbert Maria. (Ora ho dato via siamo bavaresi) o mia sorella Christine Gabriele. Quali pensi che siano i nomi che vengono chiamati? Sebastian e Christine rispettivamente.

Terrei le risposte che dicono un campo per un nome completo. E vorrei aggiungere a questo: magari aggiungere un altro campo per un cognome / nome di famiglia e porre la domanda: con quale nome verrai ordinato in una lista? E poi un campo finale per: come vuoi essere indirizzato?

    
risposta data 01.08.2017 - 15:23
fonte
-2

Se si sta per un'applicazione globale, si potrebbe probabilmente modellare il nome di una persona come una serie di stringhe. Ad esempio, considera il nome del presidente nel film Idiocracy:

  • Dwayne Elzondo Mountain Dew Herbert Camacho

Questo è il suo nome completo. Il nome contiene 6 elementi nella matrice. Per la cultura degli Stati Uniti, il primo nome è il primo elemento dell'array (Dwayne) e il cognome è l'ultimo elemento dell'array (Camacho). Ma non è sempre così.

Si potrebbero applicare regole specifiche della cultura per determinare il "primo" nome se il primo nome è in realtà l'ultimo e così via, a seconda di come i nomi funzionano in culture / locali differenti.

Inoltre, nel caso degli Stati Uniti, abbiamo casi in cui l'ultimo elemento non è il cognome come:

  • Dwayne Elzondo Mountain Dew Herbert Camacho Jr.

Quindi, forse un campo di suffisso del nome o uno dovrebbe analizzare l'ultimo elemento alla ricerca di suffissi noti basati sulla cultura per ottenere il cognome corretto.

Quindi, è sempre meglio archiviare il nome in un elemento (il nome completo) e quindi applicare una routine di "standardizzazione / risanamento" contro di esso per analizzare gli elementi specifici secondo necessità. Una strategia simile esiste per gli indirizzi. Solitamente vengono raccolti come una stringa e inviati a un servizio per analizzare le parti.

    
risposta data 01.08.2017 - 16:29
fonte

Leggi altre domande sui tag