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.
Antworten:
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.
quelle
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.
quelle
Normalerweise gehe ich mit varchar (255) (255 ist die maximale Länge eines varchar-Typs in MySQL).
quelle
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.
quelle
@ 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.
quelle
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 ;
Der NHS verwendet 70 Zeichen für Patientennamen
Das Passport Office erlaubt 30 + 30 erste / letzte und der Führerschein (DVLA) beträgt insgesamt 30.
quelle
Wir verwenden 50.
quelle
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.
quelle
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.
quelle
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.
quelle
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.
quelle