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.
quelle
Antworten:
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.
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 . 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.
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.
Tatsächlich ist es aufgrund der Mehrdeutigkeit mit asiatischen Namen nicht so klar, dass Sie es können.
quelle
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.
quelle
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.
quelle
Ich stimme vielen Aussagen von @JanHudec zu, obwohl ich das gerne etwas näher erläutern möchte:
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
Semi-formale Richtlinien
Formale Richtlinien
quelle
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.
quelle
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?
quelle
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:
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:
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.
quelle