Vor- und Nachname getrennt modellieren

32

Welche Argumente sollte jemand beim Entwerfen eines neuen Systems berücksichtigen und muss entweder den Namen einer Person als ein Feld oder separat als Vor- / Nachname speichern?

Vorteile für Einzelfeld:

  • Einfachere Benutzeroberfläche
  • Keine Mehrdeutigkeit beim Versuch, den Namen einer Person einzugeben, die einen sehr langen Namen hat (oft nicht ersichtlich, welcher der Nachname / Vorname ist ..)
  • Geringere Komplexität beim Umgang mit Titeln (z. B. kein separates Feld zur Eingabe von "MD" oder "Dr." erforderlich)

Vorteile für geteiltes Feld:

  • Personalisierte Kommunikation ist möglich "Sehr geehrter Herr X" oder "Sehr geehrte Julie"
  • Wenn ein konsumierter Webdienst den Vor- / Nachnamen separat benötigt, kann er problemlos bereitgestellt werden.
  • Bessere Wahl für jede Branche mit strengen Identifikationsanforderungen (z. B. Medizin, Regierung usw.)
  • Sichere Wahl, da Sie immer wieder auf die Einzelfeldalternative zurückgreifen können

Sehen Sie ein zusätzliches Argument, das oben nicht aufgeführt ist?

Update: Die Frage ist, welche zusätzlichen (= nicht in der Frage aufgeführten) Argumente für jede Lösung aufgelistet werden können. Meiner Meinung nach treibt das Geben von Meinungen anstelle von möglichen Vor- und Nachteilen die Diskussion in die falsche Richtung. Jeder Entwickler muss seine Entscheidung zu diesem Problem treffen. Ziel dieser Frage ist es, eine Liste nicht trivialer Argumente zusammenzustellen, die bei Bedarf ausgewertet werden können.

Istvan Devai
quelle
11
Was versuchst du mit diesen Namen zu tun? Haben Sie gesetzliche Anforderungen? Gibt es eine andere Konsequenz als die Anzeige für den Benutzernamen?
Darkhogg
9
Die Unterscheidung zwischen Vorname und Nachname unterstützt keine Personen mit nur einem Namen wie "Cher".
JacquesB
77
Ich rate Ihnen, den folgenden Artikel zu lesen: kalzumeus.com/2010/06/17/… es ist ein echter Augenöffner, wenn Sie über Namen nachdenken.
Pieter B
10
Sie könnten überlegen, diese Frage auf User Experience zu stellen , da die Community dort möglicherweise eine andere Perspektive auf dieses im Wesentlichen Benutzeroberflächenproblem bieten kann.
11684
9
@PieterB Einige der Punkte in diesem Artikel sind fragwürdig und manchmal muss man Annahmen treffen, um Dinge zu erledigen. Dieser Artikel enthält keine nützlichen Ratschläge zum Umgang mit Namen. Was tun Sie, wenn ein Name Nicht-Unicode-Zeichen enthält, damit der Benutzer ein Bild hochladen kann? Was ist, wenn es nicht-visuelle Aspekte gibt - erlauben Sie ein Video mit Ton? Was ist, wenn ein Name Performancekunst ist und nur um Mitternacht in Hongkong aufgeführt werden kann? Irgendwann müssen Sie real werden und Probleme lösen, anstatt sich mit theoretischen Eckfällen zu befassen, auf die Ihre Anwenderbasis niemals stoßen wird.
Setzen Sie Monica

Antworten:

50

Vorname und Nachname sind keine nützlichen Begriffe. Namen funktionieren in verschiedenen Ländern unterschiedlich. In den meisten asiatischen Ländern steht der Familienname an erster Stelle, wird jedoch weiterhin zum Sortieren verwendet. Sie können ihn also in den Vornamen eingeben und die Sortierung ist falsch oder in den Nachnamen und die Anzeige ist falsch. Und dann gibt es Länder wie Island, in denen gar keine Familiennamen verwendet werden, sondern der Vorname des Vaters. Also sortieren sie einfach nach Vornamen.

Die Ausdrücke "Vorname" und "Nachname" (oder "Familienname") sind in dieser Hinsicht besser, aber ich würde sie trotzdem meiden, es sei denn, dies ist absolut notwendig (dh offizielle Dokumente wie Pässe haben sie, dann brauchen Sie sie), weil Sie machen die Dinge nur komplizierter.

  • Personalisierte Kommunikation ist möglich "Sehr geehrter Herr X" oder "Sehr geehrte Julie"

Außer Sie haben keine Ahnung, ob Sie eine bestimmte Person mit ihrem Vornamen oder Nachnamen anrufen sollen oder was. Und lassen Sie mich nicht mit den Sprachen anfangen, die Akkusativ haben - Sie können Akkusativ nicht generell aus Nominativ ableiten. Nein, es ist besser, wenn Sie den Benutzer einfach fragen, wie er sie anrufen soll.

  • Wenn ein konsumierter Webdienst den Vor- / Nachnamen separat benötigt, kann er problemlos bereitgestellt werden.

Wenn . Wenn Sie von einem anderen Dienst abhängig sind, sind Sie an die schlechten Entscheidungen gebunden. Es ist kein Vorteil für Ihre eigenen Entwürfe.

  • Bessere Wahl für jede Branche mit strengen Identifikationsanforderungen (z. B. Medizin, Regierung usw.)

Nein, für diese ist es eine falsche Wahl. In offiziellen Dokumenten werden in der Regel die Begriffe "Vorname" und "Nachname" (oder "Familienname") verwendet, die weniger eindeutig sind.

  • Sichere Wahl, da Sie immer wieder auf die Einzelfeldalternative zurückgreifen können

Tatsächlich ist es aufgrund der Mehrdeutigkeit mit asiatischen Namen nicht so klar, dass Sie es können.

Jan Hudec
quelle
2
Wenn die App in verschiedenen Teilen der Welt verwendet wird, müssen die Feldbezeichnungen zusammen mit der Art und Weise, wie sie kombiniert / verwendet werden, lokalisiert werden.
JeffO
5
@JeffO, das eigentliche Problem ist, dass heutzutage eher Menschen aus verschiedenen Ländern im selben System arbeiten. Sie müssen also ein System erstellen und einen Weg finden, Namen aus verschiedenen Kulturen einzufügen, damit es einigermaßen konsistent funktioniert . Betreten Sie dieses Kaninchenloch nur, wenn Sie es wirklich brauchen.
Jan Hudec
4
@IstvanDevai In Kalifornien gab es einen Rechtsstreit, in dem ein Vertrag für nichtig erklärt wurde, weil das Kreditgesetz "Nachname" vorschrieb. Die Person hatte einen doppelten hispanischen Nachnamen, aber als sie nach dem Nachnamen gefragt wurde, wurde der erste (väterliche) Nachname angegeben, was üblich ist. Die Gegenpartei verlor ihren Inkassokoffer, weil der Name auf dem Vertrag nicht sein "Nachname" war, dh der Name am Ende seines vollständigen Namens. Ein Beispiel dafür, wie Vor- und Nachname Verwirrung stiften und nicht ganz gleichbedeutend mit Vornamen und Familiennamen sind.
6
@Casey - Zweitnamen sollten in das Feld für Vornamen aufgenommen werden, da es sich um sekundäre Vornamen handelt. Wenn ich einen Dollar für jedes Mal hätte, wenn ich eine spanische Person gesehen habe, die keinen zweiten Vornamen, aber einen doppelten Nachnamen hat, deren ersten (und wichtigsten) Nachnamen in ein Feld für den zweiten Vornamen eingetragen wird, wäre ich bereits im Ruhestand. Wenn Sie wissen möchten, wie Sie eine Person anrufen sollen, geben Sie ein Feld ein, das vom Namen getrennt ist. Dann kann Ihnen der Bartholomäus Frank Edward Smith Wellington sagen, dass Sie sie Bart nennen sollen. Wir können Englisch sprechen, aber es gibt Leute hier, die nicht Englisch sprechen, und auch deren Namen werden eingegeben.
4
-1. Die Antwort selbst ist zwar nicht völlig falsch, macht aber für die vorliegende Frage wenig Sinn. Das OP sucht nach weiteren Argumenten, um entweder ein Feld oder zwei Felder für menschliche Namen zu verwenden. Ob es "first / last" oder "given / sur" heißt, ist nicht der Fokus, es sind nur die Labels, die das OP im Auge hatte. Alle anderen Punkte scheinen mir sehr aufgeschlossen zu sein, und aufgrund meiner persönlichen Erfahrung mit der Erstellung und Bereitstellung von Anwendungen für Großkunden sind die Annahmen des OP völlig normal und passieren einfach so. Diese Antwort versucht nur, die Parameter der Frage weg zu argumentieren.
AnoE
31

Das einzige entscheidende Argument ist, welche Anforderungen an Ihr System gestellt werden.

Müssen Sie sich nur mit einer Kultur befassen? Wenn ja, passen Sie sich dieser Kultur an. Planen Sie ansonsten eine Internationalisierung (wie bereits erwähnt).

Müssen Sie Daten abrufen, um mit Formularen der Regierung, dem Gesundheitswesen oder anderen rechtlichen / systembedingten Anforderungen fertig zu werden? Befolgen Sie alle Anweisungen. Wenn das Vor- und Nachnamen bedeutet, tun Sie es. Wenn es etwas anderes bedeutet, tun Sie das.

Benötigen Sie eine API mit Vor- und Nachnamen (oder ist dies wahrscheinlich genug, um das Ignorieren von YAGNI zu rechtfertigen)? Mach was da Sinn macht.

Wenn Sie personalisierte Mitteilungen benötigen, ist es sinnvoll, einfach jemanden nach seinem bevorzugten Namen zu fragen und diesen zu speichern?

Die Anforderungen Ihres Systems sollten bestimmen, was Sie tun. Tu was du musst und YAGNI den Rest.

Becuzz
quelle
7
Es gibt keine "eine Kultur" mehr. Selbst die kleinsten Gemeinden haben gemischte kulturelle Normen und Sprachen.
BobDalgleish
7
@ BobDalgleish Stimmt, aber manchmal spielt es keine Rolle. Manchmal lassen die Kosten für die Unterstützung mehrerer Kulturen die Geschäftsleute einfach nein sagen.
Becuzz
9
@BobDalgleish Vermutlich welche Kultur dominiert auf dem Markt, für den die Anwendung entwickelt wird? Ich denke nicht, dass dies wirklich so mysteriös oder selten ist.
Casey
3
@ BobDalgleish - "Kultur" ist irrelevant. Niemand fragt nach Ihrer Kultur, wenn Ihnen Dokumente ausgestellt werden. Wenn ich nur Serbien unterstützen müsste (wo ich gerade bin), würde ich den Vor- und Nachnamen angeben, wie er in jedem in diesem Land ausgestellten Dokument definiert ist, und das war's. Es ist egal, was deine Kultur ist. Ihr Reisepass, Führerschein usw. haben Vor- und Nachname, Punkt.
Davor Ždralo
2
@icirellik Inwiefern falsch? Sind diese Dinge (Längenbeschränkungen usw.) falsch, wenn Sie versuchen, das Universum perfekt zu modellieren? Bestimmt. Aber ich wurde nie gebeten, das Universum perfekt zu modellieren und auf jede erdenkliche Weise einen Namen zu wählen. Rechne ich klingonische Namen ab? Nein, aber warum nicht? Jemand könnte das eines Tages tun (würde mich ehrlich gesagt nicht überraschen, wenn das jetzt jemand getan hätte). Aber irgendwann wissen Sie, dass einige Dinge mit Ihrem Modell einfach nicht mehr funktionieren. Und die zusätzliche Entwicklungszeit, um mit jeder Möglichkeit fertig zu werden, ist es einfach nicht wert. (Forts.)
Becuzz
5

Wenn Sie mehr als eine Möglichkeit haben, die Namen anzuzeigen und / oder zu verwenden, benötigen Sie wahrscheinlich separate Felder. Zusammen mit der Dateneingabe können Sie dem Benutzer ein Feedback geben, um zu zeigen, wie es verwendet wird. Wie Sie sie kombinieren, könnte in Zukunft zur Umstellung auf ein einzelnes Feld führen.

Haben Sie einige Bezeichnungen, die zeigen: Begrüßung oder Anzeigename: Vorname + Nachname Organisieren / Sortieren: Nachname, Vorname

Wenn Sie sich nicht sicher sind, wie dies in Zukunft verwendet werden soll, beginnen Sie mit getrennten Namen. Sie können diese dann zu einem einzigen Feld zusammenfassen, wenn Sie feststellen, dass dies alles ist, was Sie wirklich benötigen. Es ist nicht so, dass es schwierig ist, einen Algorithmus zu schreiben, um ein einzelnes Namensfeld in Vor- und Nachnamen aufzuteilen, aber bei einigen machen Sie einen Fehler, und die Leute mögen keine Fehler mit ihren Namen. Mit geteilten Feldern können Benutzer anpassen, wie sie ihren Namen eingeben, wenn sie sehen, wie er verwendet wird. Das Kombinieren in einem permanenten einzelnen Namensfeld ist weniger riskant.

JeffO
quelle
5

Ich stimme vielen Aussagen von @JanHudec zu, obwohl ich das gerne etwas näher erläutern möchte:

  • Sie müssen Ihre tatsächlichen Anforderungen kennen, aber es ist einfacher, Informationen zu kombinieren, als sie zu trennen, sobald sie erneut kombiniert werden.
  • Das Sortieren wird immer eine Herausforderung sein, da sich die Regeln je nach Gebietsschema und Kultur unterscheiden können.
  • Viele Kulturen stimmen nicht mit Ihren überein, was zu schlechten Annahmen führt. (Dies ist Jans größter Punkt)

Terminologie ist wichtig

Begriffe wie Vor- und Nachname oder Familienname haben eine semantische Bedeutung, und Ihre Datenbank sollte immer die Semantik Ihrer Daten widerspiegeln. Begriffe wie Vorname und Nachname haben eine positionelle Bedeutung, die in der Regel auf englischen und amerikanischen Vorstellungen von der Funktionsweise von Namen basiert. Verwenden Sie die richtige Terminologie für die Semantik Ihrer Daten.

Wie weit müssen Sie es abbauen?

Es gibt Konzepte für Titel (Herr Dr. Frau usw.) oder Ordinale (Jr., Sr., III usw.) und sogar für Zertifizierungen (PhD, MS, PCAM usw.), die je nach dem von Bedeutung sein können Kontext und Zweck.

Viele Gebietsschemas haben das Konzept mehrerer Familiennamen (väterlich und mütterlich), und einige haben keine. Beim Ausfüllen von Formularen müssen Menschen manchmal schwierige Entscheidungen treffen, welchen Namen sie verwenden möchten, z. B. den väterlichen Familiennamen für den "Nachnamen" in amerikanischer Form oder einen Nachnamen basierend auf dem Namen des Vaters (Janson ).

Während es in Amerika üblich ist, einen oder mehrere Vornamen zu haben, wird dies außerhalb Ihrer Familie oft ignoriert.

Sortierung

Es ist hilfreich, ein eigenes Feld für den Sortiernamen zu haben. Auf diese Weise können Sie die Regeln beim Erstellen des Datensatzes eindeutig definieren. Es stellt auch sicher, dass Sie die Namen über internationale Grenzen hinweg in der richtigen Reihenfolge sortiert haben.

Gemeinsame Praktiken

Ihre tatsächlichen Anforderungen bestimmen, wie korrekt Sie mit Namen umgehen müssen. Wenn Sie eine Website für Behörden oder Banken erstellen, müssen Sie mehr Namen speichern und verarbeiten als informelle Inhalte wie Facebook.

Informelle Richtlinien

  • Haben Sie ein Feld, das beschreibt, wie der Benutzer bekannt sein möchte
  • Sortieren und Anzeigen verwendet diesen einen Namen

Semi-formale Richtlinien

  • Haben Sie ein Feld für einen Spitznamen oder wie der Benutzer angesprochen werden möchte
  • Haben Sie zwei Felder, eines für Vorname und eines für Nachname (Nachname sollte optional sein)
  • Berechnen Sie ein Sortierfeld basierend auf dem Gebietsschema und der Kombination aus Vorname und Nachname
  • Verwenden Sie den Spitznamen, wenn Sie den Benutzer direkt ansprechen
  • Verwenden Sie den formalen Namen, wenn Sie Personen auflisten

Formale Richtlinien

  • Diese richten sich nach den bestehenden Richtlinien und Verfahren für die von Ihnen unterstützte Organisation
  • Sie benötigen so viele Felder, wie Sie maximal Namensteile unterstützen, die semantisch so benannt sind, wie sie sind.
  • Fügen Sie ein Sortierfeld ein, das die Sortierung wie im semi-formalen Fall behandelt
  • Die Anzeige wird in der Regel auch von den vorhandenen Richtlinien und Verfahren bestimmt. Sie müssen sich mit ihnen vertraut machen.
Berin Loritsch
quelle
Würde es dem Downvoter etwas ausmachen? Vielleicht habe ich etwas verpasst?
Berin Loritsch
Dies scheint mir die umfassendste und pragmatischste Beratung zu sein, die hier gegeben wird.
Jesse Clark
4

Abgesehen von dem, worauf @JanHudec hingewiesen hat und dem ich zustimme, ist es auch erwähnenswert, dass in vielen Ländern Menschen mehr als einen Nachnamen haben, sodass ein einziges Nachname-Feld irrelevant sein kann. ZB in Spanien haben die Leute zwei Nachnamen und sie benutzen nur einen oder beide, abhängig von der Situation.

Außerdem sollten Sie die Kommunikation nicht auf der Grundlage Ihrer Vermutungen personalisieren, da Sie in einigen Kulturen unhöflich erscheinen, wenn Sie Personen mit Nachnamen anrufen, und in anderen Fällen möglicherweise das Gegenteil der Fall ist.

Außerdem legen einige Kulturen einen Schwerpunkt auf Formen wie "Frau" gegen "Frau", und sie können dieses Wort je nach Fall auch mit Vor- oder Nachnamen kombinieren.

Ich würde mich also zu einer Lösung neigen, bei der Sie ein einziges Namensfeld und möglicherweise zusätzliche Felder ausfüllen, die darauf hinweisen, wie Sie sich an den Benutzer wenden sollen - ähnlich wie bei vielen Fluggesellschaften, wenn Sie ein Ticket online kaufen. Dies kann auch das Problem lösen, wie die Namen aufgeteilt werden, wenn Sie sie für einen externen Webdienst benötigen, den Sie erwähnt haben.

KjMag
quelle
1
Vermutlich, wenn Sie tatsächlich lokalisieren, können Sie eine andere Vorlage für verschiedene Sprachen verwenden
Casey
4

Fügen Sie noch mehr zu dem hinzu, was @JanHudec und @KjMag hervorgehoben haben, auch in Kulturen / Sprachen, die dem Englischen sehr nahe stehen, wird dies zu einem Problem. Nehmen Sie zum Beispiel Deutsch. Sie haben das Konzept von Vornamen, Vornamen, Nachnamen, Nachnamen und Rufname, den Namen, den Sie genannt werden. Nehmen wir meinen Vater zum Beispiel, er hat 3 Vornamen, auf seiner Geburtsurkunde sind sie in der Reihenfolge Christoph Stephan Andreas aufgeführt. Und er hat einen Nachnamen. Wie heißt er wohl?

Die richtige Antwort: Andreas. Das ist sein Rufname, in Amerika setzt er ihn als Vornamen ein, um der amerikanischen Vorlage zu entsprechen. Sie könnten also in Deutschland annehmen, dass der letzte Ihrer Vornamen der Name ist, den Sie heißen, aber dann haben Sie meinen Bruder: Christoph Sebastian Herbert Maria. (Jetzt habe ich verschenkt, wir sind Bayerin) Oder meine Schwester Christine Gabriele. Was denkst du sind die Namen, die sie genannt werden? Sebastian bzw. Christine.

Ich würde die Antworten, in denen ein Feld für einen vollständigen Namen steht, mit einem Drittel versehen. Und ich füge hinzu: Vielleicht füge ich ein weiteres Feld für einen Nachnamen / Familiennamen hinzu und stelle die Frage: Nach welchem ​​Namen würden Sie in einer Liste sortiert sein? Und dann ein letztes Feld für: Wie möchten Sie angesprochen werden?

Hangman4358
quelle
1
"Nachname" ist nur ein anderer Name für "Nachname", nicht wörtlich das Wort, das als letztes in Folge erscheint. Der Nachname von Nakayama Taro ist "Nakayama".
Casey
2
Um einen weiteren Fall hinzuzufügen: Mein Großvater hieß "Antoon Leendert van Ingen Schenau" => Vorname (n): "Antoon Leendert"; genannt: "Leen"; Nachname: "van Ingen Schenau" zur Sortierung unter "Ingen". Weder der aufrufende Name noch die richtige Sortierung lassen sich leicht aus einem Vor- / Nachnameneintrag ableiten.
Bart van Ingen Schenau
1
@Casey nach wem? in japan ist es beispielsweise "oberer name", nicht "nachname".
Eis
1
@eis In Japan ist es 名字. Aber hier in der englischsprachigen Welt ist "Nachname" ein Synonym für "Nachname" und nicht wörtlich "das letzte Wort in der Namensfolge von jemandem".
Casey
1
@eis Ich bin nicht sicher, welchen Punkt Sie machen möchten. Die Benutzer werden den Unterschied nicht bemerken, wenn Sie das Datenbankfeld Nachname anstelle des Nachnamens aufrufen. eines ist nur ein Synonym des anderen. Wenn Ihr Anliegen darin besteht, die Software nicht englischsprachigen Personen vorzustellen, ist dies irrelevant, da sowohl "Nachname" als auch "Nachname" englische Begriffe sind und Sie den Begriff in der Sprache verwenden sollten, in der Sie die Seite lokalisieren möchten. Wenn das Problem darin besteht, dass Personen, die kein Englisch sprechen, die englische Seite verwenden können, scheint dies eine ziemlich halbherzige Möglichkeit zu sein, das eigentliche Problem anzugehen.
Casey
-2

Wenn man sich für eine globale Anwendung entscheidet, würde man den Namen einer Person wahrscheinlich als Array von Zeichenfolgen modellieren. Betrachten Sie zum Beispiel den Namen des Präsidenten im Film Idiocracy:

  • Dwayne Elzondo Gebirgstau Herbert Camacho

Das ist sein voller Name. Der Name enthält 6 Elemente im Array. In der US-Kultur ist der Vorname das erste Element im Array (Dwayne) und der Nachname das letzte Element im Array (Camacho). Das ist aber nicht immer der Fall.

Man könnte kulturspezifische Regeln anwenden, um den "Vornamen" zu bestimmen, wenn der Vorname tatsächlich das letzte Element ist, und so weiter, abhängig davon, wie Namen in verschiedenen Kulturen / Regionen funktionieren.

In den USA gibt es auch Fälle, in denen das letzte Element nicht der Nachname ist, wie zum Beispiel:

  • Dwayne Elzondo Mountain Dew Herbert Camacho Jr.

Vielleicht muss ein Namenssuffixfeld oder das letzte Element analysiert werden, um nach bekannten Suffixen basierend auf der Kultur zu suchen, um den korrekten Nachnamen zu erhalten.

Daher ist es immer besser, den Namen in einem Element (dem vollständigen Namen) zu speichern und anschließend eine Routine für "Standardisierung / Hygiene" anzuwenden, um die spezifischen Elemente nach Bedarf herauszusuchen. Eine ähnliche Strategie besteht für Adressen. Sie werden normalerweise als eine Zeichenfolge gesammelt und dann an einen Dienst gesendet, um die Teile zu analysieren.

Jon Raynor
quelle
3
Einzelfeld und dann "Parsen" ist eine wirklich schlechte Idee. Stellen Sie sich eine Person vor, deren Nachname "Senior" ist: Wie analysieren Sie das? Was ist mit "de la Jolla" als Nachname?
BobDalgleish
Ich erwähnte das Parsen oder ein Namenssuffixfeld. Wenn eine generische Lösung benötigt wird, würde man einen Namens-Parser benötigen, damit Sie den jeweiligen Fall wie "Senior" und "de la Jolla" behandeln können. Man könnte KI benutzen und es trainieren, wie man Namen erkennt. Ich wette, wenn man ihm einen ausreichend großen Datensatz zuführt, kann er die "de la Jollas" der Welt erkennen. Aber das ist eine mögliche Lösung. Das Sammeln diskreter Teile ist natürlich auch möglich, aber das hat auch Nachteile.
Jon Raynor