Ich entwerfe eine Datenbanktabelle und stelle mir noch einmal die gleiche dumme Frage: Wie lang sollte das Feld Vorname sein?
Hat jemand eine Liste mit angemessenen Längen für die häufigsten Felder wie Vorname, Nachname und E-Mail-Adresse?
Ich entwerfe eine Datenbanktabelle und stelle mir noch einmal die gleiche dumme Frage: Wie lang sollte das Feld Vorname sein?
Hat jemand eine Liste mit angemessenen Längen für die häufigsten Felder wie Vorname, Nachname und E-Mail-Adresse?
Antworten:
Empfehlung von W3C:
Wenn Sie ein Formular oder eine Datenbank entwerfen, die Namen von Personen mit unterschiedlichem Hintergrund akzeptieren, sollten Sie sich fragen, ob Sie wirklich separate Felder für Vorname und Familienname benötigen.
… Denken Sie daran, dass Namen in einigen Kulturen viel länger sein können als Ihre eigenen. … Vermeiden Sie es, die Feldgröße für Namen in Ihrer Datenbank zu begrenzen . Nehmen Sie insbesondere nicht an, dass ein vierstelliger japanischer Name in UTF-8 in vier Bytes passt - Sie benötigen wahrscheinlich tatsächlich 12.
https://www.w3.org/International/questions/qa-personal-names
Für Datenbankfelder VARCHAR(255)
ist dies eine sichere Standardauswahl, es sei denn, Sie können tatsächlich einen guten Grund finden, etwas anderes zu verwenden. Bei typischen Webanwendungen ist die Leistung kein Problem. Nicht vorzeitig optimieren.
Ich habe gerade meine Datenbank mit Millionen von Kunden in den USA abgefragt.
Die maximale Länge des Vornamens betrug 46. Ich gehe mit 50. (Natürlich waren nur 500 von ihnen über 25 Jahre alt, und dies waren alles Fälle, in denen Datenimporte dazu führten, dass zusätzlicher Müll in diesem Feld auftauchte.)
Nachname war ähnlich wie Vorname.
E-Mail-Adressen mit maximal 62 Zeichen. Die meisten längeren waren Listen von E-Mail-Adressen, die durch Semikolons getrennt waren.
Die Adresse beträgt maximal 95 Zeichen. Die langen waren alle gültig.
Max Stadt Länge betrug 35.
Dies sollte eine anständige statistische Streuung für die Menschen in den USA sein. Wenn Sie die Lokalisierung berücksichtigen müssen, können die Zahlen erheblich variieren.
Der Datenstandardkatalog der britischen Regierung enthält Einzelheiten zu den britischen Standards für solche Dinge. Es werden 35 Zeichen für jeden Vornamen und Familiennamen oder 70 Zeichen für ein einzelnes Feld für den vollständigen Namen und 255 Zeichen für eine E-Mail-Adresse vorgeschlagen. Unter anderem..
Min Max
Hostname 1 255
Domain Name 4 253
Email Address 7 254
Email Address [1] 3 254
Telephone Number 10 15
Telephone Number [2] 3 26
HTTP(S) URL w domain name 11 2083
URL [3] 6 2083
Postal Code [4] 2 11
IP Address (incl ipv6) 7 45
Longitude numeric 9,6
Latitude numeric 8,6
Money[5] numeric 19,4
[1] Allow local domains or TLD-only domains
[2] Allow short numbers like 911 and extensions like 16045551212x12345
[3] Allow local domains, tv:// scheme
[4] http://en.wikipedia.org/wiki/List_of_postal_codes. Use max 12 if storing dash or space
[5] http://stackoverflow.com/questions/224462/storing-money-in-a-decimal-column-what-precision-and-scale
Ein persönlicher Name ist entweder ein Polynym (ein Name mit mehreren Sortierbarkeiten Komponenten), ein Mononym (ein Name mit nur einer Komponente) oder ein Piktonym (ein Name, der durch ein Bild dargestellt wird - dies existiert aufgrund von Personen wie Prince).
Eine Person kann mehrere Namen haben und Rollen spielen, wie z. B. RECHTLICH, MARITAL, MAIDEN, BEVORZUGT, SOBRIQUET, PSEUDONYM usw. Sie haben möglicherweise Geschäftsregeln wie "Eine Person kann jeweils nur einen legalen Namen haben, aber mehrere Pseudonyme zu einer Zeit ".
Einige Beispiele:
names: [
{
type:"POLYNYM",
role:"LEGAL",
given:"George",
middle:"Herman",
moniker:"Babe",
surname:"Ruth",
generation:"JUNIOR"
},
{
type:"MONONYM",
role:"SOBRIQUET",
mononym:"The Bambino" /* mononyms can be more than one word, but only one component */
},
{
type:"MONONYM",
role:"SOBRIQUET",
mononym:"The Sultan of Swat"
}
]
oder
names: [
{
type:"POLYNYM",
role:"PREFERRED",
given:"Malcolm",
surname:"X"
},
{
type:"POLYNYM",
role:"BIRTH",
given:"Malcolm",
surname:"Little"
},
{
type:"POLYNYM",
role:"LEGAL",
given:"Malik",
surname:"El-Shabazz"
}
]
oder
names:[
{
type:"POLYNYM",
role:"LEGAL",
given:"Prince",
middle:"Rogers",
surname:"Nelson"
},
{
type:"MONONYM",
role:"SOBRIQUET",
mononym:"Prince"
},
{
type:"PICTONYM",
role:"LEGAL",
url:"http://upload.wikimedia.org/wikipedia/en/thumb/a/af/Prince_logo.svg/130px-Prince_logo.svg.png"
}
]
oder
names:[
{
type:"POLYNYM",
role:"LEGAL",
given:"Juan Pablo",
surname:"Fernández de Calderón",
secondarySurname:"García-Iglesias" /* hispanic people often have two surnames. it can be impolite to use the wrong one. Portuguese and Spaniards differ as to which surname is important */
}
]
Vor- und Nachnamen sowie Nachnamen können mehrere Wörter wie "Billy Bob" Thornton
oder sein Ralph "Vaughn Williams"
.
Ich würde sagen, auf der hohen Seite zu irren. Da Sie wahrscheinlich varchar verwenden, wird jeder zusätzliche Speicherplatz, den Sie zulassen, keinen zusätzlichen Speicherplatz verbrauchen, es sei denn, jemand benötigt ihn. Ich würde sagen, für Namen (erste oder letzte), mindestens 50 Zeichen und für E-Mail-Adresse mindestens 128. Es gibt einige wirklich lange E-Mail-Adressen da draußen.
Eine andere Sache, die ich gerne mache, ist, zu Lipsum.com zu gehen und es zu bitten, Text zu generieren. Auf diese Weise erhalten Sie eine gute Vorstellung davon, wie 100 Bytes aussehen.
[N]Varchar
Größen wirken sich jedoch auf Ihre Indizes aus.
Ich verwende so ziemlich immer eine Zweierpotenz, es sei denn, es gibt einen guten Grund, dies nicht zu tun, z. B. eine Schnittstelle mit Kundenkontakt, bei der eine andere Zahl für den Kunden eine besondere Bedeutung hat.
Wenn Sie sich an Potenzen von 2 halten, bleiben Sie innerhalb eines begrenzten Satzes gängiger Größen, was selbst eine gute Sache ist, und es erleichtert das Erraten der Größe unbekannter Objekte, auf die Sie möglicherweise stoßen. Ich sehe eine ganze Reihe anderer Leute, die dies tun, und es hat etwas Ästhetisches. Es gibt mir im Allgemeinen ein gutes Gefühl, wenn ich das sehe, es bedeutet, dass der Designer wie ein Ingenieur oder Mathematiker dachte. Obwohl ich wahrscheinlich besorgt wäre, wenn nur Primzahlen verwendet würden. :) :)
Ich wollte dasselbe finden und die in der akzeptierten Antwort erwähnten britischen Datenstandards klangen ideal. Keines davon schien jedoch mehr zu existieren - nach einer erweiterten Suche fand ich es in einem Archiv hier: http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/ schemasstandards / e-gif / datastandards.aspx . Sie müssen die Zip-Datei herunterladen, extrahieren und dann default.htm im HTML-Ordner öffnen.
Diese könnten für jemanden nützlich sein;
youtube max channel length = 20
facebook max name length = 50
twitter max handle length = 15
email max length = 255
http://www.interoadvisory.com/2015/08/6-areas-inside-of-linkedin-with-character-limits/
+------------+---------------+---------------------------------+
| Field | Length (Char) | Description |
+------------+---------------+---------------------------------+
|firstname | 35 | |
|lastname | 35 | |
|email | 255 | |
|url | 60+ | According to server and browser |
|city | 45 | |
|address | 90 | |
+------------+---------------+---------------------------------+
Bearbeiten : Abstand hinzugefügt
Wenn ich nur meine E-Mail-Archive durchschaue, gibt es eine Reihe ziemlich langer "Vornamen" (natürlich ist das, was mit "zuerst" gemeint ist, kulturell variabel). Ein Beispiel ist Krishnamurthy - das 13 Buchstaben lang ist. Eine gute Vermutung könnten 20 bis 25 Buchstaben sein. E-Mails sollten viel länger sein, da Sie möglicherweise Vorname.Nachname@Somedomain.com haben. Mit Google Mail und einigen anderen E-Mail-Programmen können Sie außerdem firstname.lastname+sometag@somedomain.com verwenden, wobei "sometag" alles ist, was Sie dort ablegen möchten, damit Sie eingehende E-Mails damit sortieren können. Ich stoße häufig auf Webformulare, mit denen ich meine vollständige E-Mail-Adresse nicht eingeben kann, ohne Tags zu berücksichtigen. Also, wenn Sie ein festes E-Mail-Feld benötigen, vielleicht so etwas wie 25.25+15@20.3 in Zeichen für insgesamt 90 Zeichen (wenn ich meine Mathematik richtig gemacht habe!).
Ich gehe normalerweise mit:
Vorname : 30 Zeichen
Nachname : 30 Zeichen
E-Mail : 50 Zeichen
Adresse : 200 Zeichen
Wenn ich mir Sorgen über lange Felder für die Namen mache, kann ich manchmal auch 50 für die Namensfelder wählen, da Speicherplatz heutzutage selten ein Problem darstellt.
Wenn Sie eine Lokalisierung in Betracht ziehen müssen (für diejenigen von uns außerhalb der USA!) Und dies in Ihrer Umgebung möglich ist, würde ich vorschlagen:
Definieren Sie Datentypen für jede Komponente des Namens - HINWEIS: Einige Kulturen haben mehr als zwei Namen! Dann haben Sie einen Typ für den vollständigen Namen,
Dann wird die Lokalisierung einfach (was die Namen betrifft).
Gleiches gilt für Adressen, übrigens - verschiedene Formate!