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.

Gefährdete Masse
quelle
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.

Ian Nelson
quelle
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.

Noel Cosgrave
quelle
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).

pix0r
quelle
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.

Greg Hurlman
quelle
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.

Thomas Owens
quelle
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.

Steve Cooper
quelle
2

Wir verwenden 50.

coder1
quelle
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.

Keil
quelle
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.

ColinYounger
quelle
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.

Craig
quelle
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
@ Tao siehe stackoverflow.com/questions/11132357/…
Habeeb Perwad
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.

Themba Mabaso
quelle