Was ist eine angemessene Längenbeschränkung für die Felder "Name" der Person?


138

Ich habe ein einfaches Webformular, mit dem nicht authentifizierte Benutzer ihre Informationen, einschließlich des Namens, eingeben können. Ich gab dem Namensfeld ein Limit von 50 Zeichen, damit es mit meiner Datenbanktabelle übereinstimmt, in der das Feld varchar (50) ist, aber dann begann ich mich zu wundern.

Ist es angemessener, so etwas wie den Spaltentyp Text zu verwenden, oder sollte ich die Länge des Namens auf etwas Vernünftiges beschränken?

Ich verwende SQL Server 2005, falls dies in Ihrer Antwort von Bedeutung ist.

EDIT: Ich habe diese umfassendere Frage zu ähnlichen Themen nicht gesehen.


1
Überprüfen Sie diese verwandte Frage für viele Diskussionen zu diesem Thema.
Chris Marasti-Georg

2
In Zeiten der Globalisierung ist varchar normalerweise NICHT der richtige Datentyp. Wahrscheinlich sollten Sie nvarchar verwenden.
Tao

@Tao: Da er MS SQL Server verwendet, stimme ich zu. VARCHAR ist jedoch der richtige Datentyp in anderen SQL-Implementierungen, die UTF-8 besser unterstützen.
Dan04

Antworten:


142

Der Datenstandardkatalog der britischen Regierung schlägt 35 Zeichen für jeden Vornamen und Familiennamen oder 70 Zeichen für ein einzelnes Feld für den vollständigen Namen vor.


3
Der Link muss ab dem 22. Oktober 2010 aktualisiert werden. Ich habe gegoogelt nach: site: *. Gov.uk Name "35 Zeichen" und dieses Dokument gefunden Justice.gov.uk/guidance/docs/electoral-reg-standards.pdf
Tony R

Ihre Links scheinen wirklich schlecht zu sein ... Stand 8/2012: webarchive.nationalarchives.gov.uk/+/http://…
Thomas B

6
Der längste "vernünftige" vollständige Name, den ich gefunden habe, ist "Gisele Marie-Louise Marguerite LaFleche" (39 Byte Länge).
user1154664

Etwas größer 54 Zeichen: gw.geneanet.org/…
Mestachs

3
Neuseeland beschränkt vollständige Namen: Sie müssen weniger als 100 Zeichen lang sein, einschließlich Leerzeichen, und dürfen keine Symbole oder Zahlen enthalten. Ich denke, Bindestriche sind in Familiennamen erlaubt.
Glutnix

27

Ich weiß, dass ich zu spät komme, aber ich werde diesen Kommentar trotzdem hinzufügen, da andere möglicherweise in Zukunft mit ähnlichen Fragen hierher kommen werden.

Achten Sie darauf, die Spaltengröße nicht vom Gebietsschema abhängig zu machen. Zunächst einmal bereitet es Sie auf einen Wartungs-Albtraum vor, wobei die Tatsache außer Acht gelassen wird, dass Personen migrieren und ihre Namen mitnehmen.

Zum Beispiel können Spanier mit diesen zusätzlichen Nachnamen in ein englischsprachiges Land ziehen und dort leben und vernünftigerweise erwarten, dass ihr vollständiger Name verwendet wird. Russen haben zusätzlich zu ihren Nachnamen Patronymie, einige afrikanische Namen können erheblich länger sein als die meisten europäischen Namen.

Machen Sie jede Spalte so breit wie möglich, und berücksichtigen Sie dabei die potenzielle Anzahl der Zeilen. Ich benutze jeweils 40 Zeichen für Vorname, andere Vor- und Nachnamen und habe nie Probleme gefunden.


Danke für die Antwort, auch wenn es eine Weile her ist.
EndangeredMassa

9

Normalerweise gehe ich mit varchar (255) (255 ist die maximale Länge eines varchar-Typs in MySQL).


30
Und reservieren Sie auch 255 Zeichen in Ihren GUIs und anderen Medien, in denen der Vor- / Nachname angezeigt wird? ;-)
Andrew Bourgeois

2
Früher dachte ich: "Warum nicht immer varchar (255) verwenden?" Jetzt ist mir klar, dass Längenbeschränkungen hauptsächlich für die Benutzeroberfläche gelten und dass die Einschränkungen, auf die Designer beim Entwerfen ihrer Benutzeroberfläche angewiesen sein können, zu viel Speicherplatz in der Datenbank beanspruchen.
JDG

6

Wenn es sich um einen vollständigen Namen in einem Feld handelt, gehe ich normalerweise mit 128 - 64/64 für den ersten und den letzten in separaten Feldern - Sie wissen es einfach nie.


6

@ Ian Nelson: Ich frage mich, ob andere das Problem dort sehen.

Angenommen, Sie haben Felder geteilt. Das sind insgesamt 70 Zeichen, 35 für den Vornamen und 35 für den Nachnamen. Wenn Sie jedoch ein Feld haben, vernachlässigen Sie das Leerzeichen zwischen Vor- und Nachnamen und ändern Sie kurz um 1 Zeichen. Sicher, es ist "nur" ein Charakter, aber das könnte den Unterschied zwischen jemandem, der seinen vollständigen Namen eingibt, und jemandem, der dies nicht tut, ausmachen. Daher würde ich diesen Vorschlag in "35 Zeichen für jeden Vornamen und Familiennamen oder 71 Zeichen für ein einzelnes Feld für den vollständigen Namen" ändern.


2
Das Befolgen dieses Dokuments dient dazu, dass Sie mit anderen britischen Regierungssystemen interoperabel sind, sodass Sie die 70 bis 71 nicht einzeln erhöhen und als Tag bezeichnen können, da sonst Systeme mit einem Limit von 70 Zeichen Ihren Text abschneiden. (Sie sollten die Daten nicht in beiden Formen in Ihrem eigenen System speichern.) Es wird tatsächlich schlimmer, da Full Name nicht nur Family / Given, sondern auch Title und Suffix enthält, für die jeweils ein Limit von 35 Zeichen gilt In den angehängten Feldern sind maximal 143 Zeichen unterhaltsam. Es ist schade, der Entwickler zu sein, der Daten mit beiden Formen der Namensspeicherung austauschen muss.
mmitchell

3
Die Anleitung basiert eindeutig auf der Erwartung, dass eine Person einen langen Vornamen (bis zu 35 Zeichen) oder einen langen Familiennamen (bis zu 35 Zeichen) haben kann, aber es ist unwahrscheinlich, dass BEIDE Teile des Namens so lang sind.
Ian Nelson

3

In Großbritannien gibt es einige staatliche Standards, die sich erfolgreich mit dem Großteil der britischen Bevölkerung befassen - das Passport Office, die Driver & Vehicle Licensing Agency, das Deed Poll Office und das NHS. Sie verwenden offensichtlich unterschiedliche Standards.

Das Ändern Ihres Namens durch Deed Poll erlaubt 300 Zeichen ;

Es gibt keine gesetzliche Beschränkung für die Länge Ihres Namens, aber wir legen eine Beschränkung von 300 Zeichen (einschließlich Leerzeichen) für Ihren vollständigen Namen fest.

Der NHS verwendet 70 Zeichen für Patientennamen

PATIENTENNAME
Format / Länge: max an70

Das Passport Office erlaubt 30 + 30 erste / letzte und der Führerschein (DVLA) beträgt insgesamt 30.

Beachten Sie, dass andere Organisationen ihre eigenen Einschränkungen hinsichtlich der Anzeige auf den von ihnen erstellten Dokumenten haben. Für HM Passport Office beträgt das Limit jeweils 30 Zeichen für Ihren Vor- und Nachnamen und für die DVLA insgesamt 30 Zeichen für Ihr Dokument vollständiger Name.



2

Was Sie wirklich fragen, ist eine verwandte, aber wesentlich andere Frage: Wie oft möchte ich Namen abschneiden, um sie in die Datenbank aufzunehmen? Die Antwort hängt sowohl von der Häufigkeit unterschiedlicher Namenslängen als auch von den maximal gewählten Längen ab. Diese Bedenken werden durch die Bedenken hinsichtlich der von der Datenbank verwendeten Ressourcen ausgeglichen. In Anbetracht des geringen Overhead-Unterschieds zwischen verschiedenen maximalen Längen für ein Varchar-Feld würde ich mich im Allgemeinen irren, wenn ich niemals gezwungen wäre, einen Namen abzuschneiden und das Feld so groß zu machen, wie ich es wagte.


1

Beachten Sie, dass viele Kulturen 'Nachnamen' haben, die oft als Familiennamen bezeichnet werden. Wenn Sie beispielsweise mit Spaniern zu tun haben, werden sie es zu schätzen wissen, wenn ein Familienname von ihrem Nachnamen getrennt ist.

Am besten definieren Sie einen Datentyp für die Namenskomponenten, verwenden diese für einen Datentyp für den Nachnamen und optimieren je nach Gebietsschema.


Es ist nicht vorteilhaft, die Grenzwerte in Gebietsschemas mit statistisch kleineren Werten zu verringern. Die Größe des Felds wirkt sich nicht auf den belegten Speicherplatz aus, es sei denn, einige Werte belegen tatsächlich diese zusätzlichen zulässigen Zeichen (und das bedeutet, dass Sie trotzdem die richtige Wahl getroffen haben). !
Tao

0

Der durchschnittliche Vorname besteht aus 6 Buchstaben. Damit bleibt 43 für einen Nachnamen. :) Scheint, als könntest du es wahrscheinlich verkürzen, wenn du magst.

Die Hauptfrage ist, wie viele Zeilen Sie Ihrer Meinung nach haben werden. Ich glaube nicht, dass Varchar (50) dich töten wird, bis du mehrere Millionen Zeilen bekommst.


6
Wenn Sie 50 Millionen Werte zwischen 10 und 15 Zeichen in einer varchar (20) -Spalte und dieselben 50 Millionen Werte in einer varchar (50) -Spalte haben, nehmen sie genau den gleichen Platz ein. Das ist der springende Punkt bei Varchar im Gegensatz zu Char.
Tao


0

Abhängig davon, wer Ihre Datenbank verwenden wird, werden beispielsweise afrikanische Namen mit varchar (20) für Nachname und Vorname getrennt. Es ist jedoch von Nation zu Nation unterschiedlich, aber um Ihre Datenbankressourcen und Ihren Arbeitsspeicher zu schonen, trennen Sie die Felder Nachname und Vorname und verwenden Sie varchar (30). Denken Sie, dass dies funktionieren wird.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.