Frage

Ich habe ein einfaches Webformular, das es nicht authentifizierten Benutzern ermöglicht, ihre Informationen, einschließlich des Namens, einzugeben.Ich habe dem Namensfeld eine Grenze von 50 Zeichen gegeben, 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 einen angemessenen Wert beschränken?

Ich verwende SQL Server 2005, falls das für Ihre Antwort von Bedeutung ist.

BEARBEITEN: Ich sah nicht diese umfassendere Frage zu ähnlichen Themen.

War es hilfreich?

Lösung

Katalog der Datenstandards der britischen Regierung schlägt 35 Zeichen für den Vornamen und den Nachnamen bzw. 70 Zeichen für ein einzelnes Feld zur Aufnahme des vollständigen Namens vor.

Andere Tipps

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

Achten Sie darauf, die Spaltengröße je nach Gebietsschema anzupassen.Zunächst einmal bereitet es Sie auf einen Wartungsalptraum vor, ganz abgesehen davon, dass Menschen abwandern und ihre Namen mitnehmen.

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

Machen Sie jede Spalte so breit, wie es vernünftigerweise möglich ist, und berücksichtigen Sie dabei die potenzielle Zeilenanzahl.Ich verwende jeweils 40 Zeichen für Vorname, andere Vornamen und Nachnamen und habe noch nie Probleme festgestellt.

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

Wenn der vollständige Name in einem Feld steht, verwende ich normalerweise 128 – 64/64 für den Vor- und Nachnamen in separaten Feldern – man weiß es einfach nie.

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

Nehmen wir an, Sie haben geteilte Felder.Das sind insgesamt 70 Zeichen, 35 für den Vornamen und 35 für den Nachnamen.Wenn Sie jedoch nur ein Feld haben, vernachlässigen Sie das Leerzeichen, das den Vor- und Nachnamen trennt, und ändern Sie kurzzeitig um 1 Zeichen.Klar, es ist „nur“ ein Zeichen, aber das könnte den Unterschied ausmachen, ob jemand seinen vollständigen Namen eingibt oder nicht.Daher würde ich diesen Vorschlag in „35 Zeichen für jeden Vornamen und Nachnamen oder 71 Zeichen für ein einzelnes Feld zur Aufnahme des vollständigen Namens“ ändern.

Im Vereinigten Königreich gibt es einige staatliche Standards, die sich erfolgreich an den Großteil der britischen Bevölkerung wenden – das Passport Office, die Driver & Vehicle Licensing Agency, das Deed Poll Office und das NHS.Sie verwenden offensichtlich unterschiedliche Standards.

Ändern Sie Ihren Namen durch Urkundenumfrage erlaubt 300 Zeichen;

Für die Länge Ihres Namens gibt es keine gesetzliche Begrenzung, wir legen jedoch eine Begrenzung auf 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 Passamt erlaubt 30+30 erste/letzte und Führerscheine (DVLA) beträgt insgesamt 30.

Beachten Sie, dass andere Organisationen ihre eigenen Einschränkungen haben, was sie auf den von ihnen erstellten Dokumenten angeben. Bei HM Passport Office beträgt die Beschränkung jeweils 30 Zeichen für Ihren Vor- und Nachnamen, bei der DVLA beträgt die Beschränkung insgesamt 30 Zeichen für Ihren Namen vollständiger Name.

Wir verwenden 50.

Was Sie wirklich stellen, ist eine verwandte, aber wesentlich andere Frage:Wie oft möchte ich Namen kürzen, damit sie in die Datenbank passen?Die Antwort hängt sowohl von der Häufigkeit unterschiedlich langer Namen als auch von der gewählten Maximallänge ab.Diese Bedenken werden durch die Bedenken hinsichtlich der von der Datenbank verwendeten Ressourcen ausgeglichen.Wenn man bedenkt, wie wenig Overhead-Unterschiede es zwischen verschiedenen maximalen Längen für ein Varchar-Feld gibt, würde ich im Allgemeinen den Fehler machen, niemals gezwungen zu werden, einen Namen zu kürzen und das Feld so groß zu machen, wie ich es gewagt habe.

Beachten Sie, dass viele Kulturen haben „zweite Nachnamen“, oft auch Familiennamen genannt.Wenn Sie beispielsweise mit Spaniern zu tun haben, werden diese es zu schätzen wissen, wenn der Familienname getrennt von ihrem „Nachnamen“ angegeben wird.

Am besten definieren Sie einen Datentyp für die Namensbestandteile, verwenden diese für einen Datentyp für den Nachnamen und passen ihn je nach Gebietsschema an.

Der durchschnittliche Vorname besteht aus etwa 6 Buchstaben.Bleibt also 43 für einen Nachnamen.:) Scheint, als könnten Sie es wahrscheinlich kürzen, wenn Sie möchten.

Die Hauptfrage ist, wie viele Zeilen Sie Ihrer Meinung nach haben werden.Ich glaube nicht, dass varchar(50) Sie umbringen wird, bis Sie mehrere Millionen Zeilen erhalten.

Abhängig davon, wer Ihre Datenbank verwenden wird, reichen beispielsweise afrikanische Namen mit varchar(20) für die Trennung von Nachname und Vorname aus.Allerdings ist es von Land zu Land unterschiedlich, aber um Ihre Datenbankressourcen und Ihren Speicher zu schonen, trennen Sie die Felder für Nachname und Vorname und verwenden Sie varchar(30). Ich denke, das wird funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top