2008-08-27 11 views
124

Ich habe ein einfaches Webformular, das es nicht authentifizierten Benutzern ermöglicht, ihre Informationen einschließlich des Namens einzugeben. Ich gab dem Namensfeld ein Limit von 50 Zeichen, um mit meiner Datenbanktabelle übereinzustimmen, wo das Feld varchar (50) ist, aber dann begann ich mich zu wundern.Was ist eine angemessene Länge für Personen "Name" Felder?

Ist es angemessener, etwas wie den Textspalte-Typ 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 wichtig ist.

EDIT: Ich habe this broader question in Bezug auf ähnliche Probleme nicht gesehen.

+2

Etwas zu beachten, in diesem Zeitalter der Globalisierung VARCHAR ist in der Regel nicht der richtige Datentyp, Chancen sollten Sie nvarchar verwenden. – Tao

+0

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

+1

Überprüfen Sie [diese verwandte Frage] (http://stackoverflow.com/questions/20958/list-of-standard-lengts-for-database-fields#21012) für viele Diskussionen zu diesem Thema. –

Antwort

127

UK Government Data Standards Catalogue schlägt 35 Zeichen für Vorname und Nachname oder 70 Zeichen für ein einzelnes Feld vor, um den vollständigen Namen zu enthalten.

+3

Der Link muss aktualisiert werden am 22. Oktober 2010. Ich googelte für: site: *. Gov.uk Name "35 Zeichen" und fand dieses Dokument https://www.justice.gov.uk/guidance/docs/Wahl-reg-standards.pdf –

+0

ihre Verbindungen scheinen wirklich schlecht zu sein ... ab 8/2012: http://webarchive.nationalarchives.gov.uk/+/http:// www.cabinetoffice.gov.uk/media/254290/GDS%20Catalogue%20Vol%202.pdf –

+5

Die longuest "vernünftigen" vollständigen Namen ich gefunden habe, ist "Gisele Marie-Louise Marguerite Laflèche" (39-Byte-Länge). – user1154664

6

Wenn es in einem Feld voller Name ist, ich in der Regel mit 128 gehen - 64/64 für ersten und letzten in separaten Feldern - Sie nie wissen.

9

Ich gehe normalerweise mit varchar (255) (255 ist die maximale Länge eines Varchar-Typs in MySQL).

+20

Und reservieren Sie auch 255 Zeichen Platz in Ihren GUIs und anderen Medien, wo der Vor-/Nachname angezeigt wird? ;-) – AndrewBourgeois

1

Der durchschnittliche Vorname ist etwa 6 Buchstaben. Das hinterlässt 43 für einen Nachnamen. :) Scheint so, als könntest du es wahrscheinlich verkürzen, wenn du willst.

Die Hauptfrage ist, wie viele Zeilen denkst du wirst du haben? Ich glaube nicht, dass Varchar (50) dich töten wird, bis du mehrere Millionen Zeilen hast.

+5

Wenn Sie 50 Millionen Werte zwischen 10 und 15 Zeichen in einer varchar (20) -Spalte und die gleichen 50 Millionen Werte in einer varchar (50) -Spalte haben, nehmen sie genau den gleichen Platz ein. Das ist der ganze Sinn von varchar, im Gegensatz zu char. – Tao

+0

@Tao siehe http://StackOverflow.com/Questions/11132357/Varchar20-and-Varchar50-are-Same –

5

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

Angenommen, Sie haben geteilte Felder. Das sind 70 Zeichen insgesamt, 35 für den Vornamen und 35 für den Nachnamen. Wenn Sie jedoch ein Feld haben, vernachlässigen Sie den Raum, der den Vor- und Nachnamen trennt, indem Sie sich kurz um 1 Zeichen ändern. Sicher, es ist "nur" ein Zeichen, aber das könnte den Unterschied machen zwischen jemandem, der seinen vollen Namen eingibt und jemand anderen nicht. Daher würde ich diesen Vorschlag auf "35 Zeichen für Vorname und Nachname, oder 71 Zeichen für ein einzelnes Feld für den vollständigen Namen" ändern.

+2

Der Sinn dieses Dokuments besteht darin, dass Sie mit anderen Systemen der britischen Regierung interoperabel sind, so dass Sie die 70 bis 71 nicht einzeln anheben und es einen Tag nennen können, da sonst Systeme mit einer Begrenzung von 70 Zeichen Ihren Text abschneiden . (Sie sollten die Daten nicht in beiden Formularen in Ihrem eigenen System speichern.) Es wird sogar noch schlimmer, da Voller Name nicht nur Familie/Gegeben, sondern auch Titel und Suffix enthält, die auch jeweils 35 Zeichen haben, für ein Spaß gefüllt 143 maximale Zeichen in den angefügten Feldern. Ist der Entwickler, der Daten mit beiden Formen des Namensspeichers austauschen muss. – mmitchell

+3

Offensichtlich wird die Anleitung aus der Erwartung geschrieben, 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 so lang sind. –

1

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

Am besten ist es, einen Datentyp für die Namen Komponenten zu definieren, verwenden Sie diese für einen Datentyp für den Nachnamen und zwicken je nach Gebietsschema.

+0

Es gibt keinen Vorteil, die Grenzen in Gebietsschemas zu verkleinern, die statistisch kleinere Werte haben - die Größe des Feldes hat keinen Einfluss auf den Platzbedarf, es sei denn, einige Werte nehmen diese zusätzlichen Zeichen tatsächlich wahr (und das bedeutet, dass Sie trotzdem die richtige Wahl getroffen haben))! – Tao

2

Was Sie wirklich fragen ist eine verwandte, aber wesentlich andere Frage: Wie oft möchte ich Namen abschneiden, um sie in die Datenbank zu passen? Die Antwort hängt sowohl von der Häufigkeit der verschiedenen Längen der Namen als auch von den gewählten maximalen Längen ab. Diese Bedenken werden durch die Bedenken hinsichtlich der von der Datenbank verwendeten Ressourcen aufgewogen. Wenn man bedenkt, wie wenig Overhead-Unterschied zwischen verschiedenen maximalen Längen für ein Varchar-Feld besteht, würde ich generell irren, wenn ich nie gezwungen wäre, einen Namen abzuschneiden und das Feld so groß zu machen, wie ich es gewagt habe.

25

Ich weiß, ich bin zu spät dran, aber ich werde diesen Kommentar trotzdem hinzufügen, da andere vielleicht in Zukunft mit ähnlichen Fragen hierher kommen.

Achten Sie darauf, die Spaltengrößen abhängig vom Gebietsschema anzupassen. Zunächst einmal stellt es dich auf einen Wartungs-Albtraum ein, abgesehen von der Tatsache, dass Menschen migrieren und ihre Namen mitnehmen.

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

Gehen Sie so weit wie möglich vor, indem Sie jede Spalte so groß wie möglich machen. Berücksichtigen Sie dabei die mögliche Anzahl der Zeilen. Ich verwende jeweils 40 Zeichen für Vornamen, andere Vor- und Nachnamen und habe nie Probleme gefunden.

+0

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

0

Je nachdem, wer Ihre Datenbank verwenden wird, werden beispielsweise afrikanische Namen mit varchar (20) für Nachnamen und Vornamen getrennt. Es ist jedoch von Nation zu Nation anders, aber um Ihre Datenbankressourcen und Speicher zu sparen, trennen Sie Nachname und Vorname Felder und verwenden Sie varchar (30) denke, das wird funktionieren.

3

Im Vereinigten Königreich gibt es einige Regierungsstandards, die erfolgreich mit dem Großteil der britischen Bevölkerung umgehen - das Passbüro, die Fahrzeugzulassungsbehörde, das Büro für die Urkundenbefragung und der NHS. Sie verwenden offensichtlich unterschiedliche Standards.

Ändern Sie Ihren Namen von Deed Poll allows 300 characters;

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

Die NHS uses 70 characters for patient names

Patientenname
Format/Länge: max an70

Paßamt allows 30+30 first/last und Führerschein (DVLA) beträgt 30 insgesamt.

Beachten Sie, dass andere Organisationen ihre eigenen Einschränkungen haben, was sie auf die Dokumente zeigen, werden sie produzieren - für HM Passamt den Grenzwert beträgt 30 Zeichen jeweils für Vor- und Ihren Nachnamen und für die DVLA ist die Grenze Insgesamt 30 Zeichen für Ihren vollständigen Namen.

Verwandte Themen