503 Stimmen

Liste der Standardlängen für Datenbankfelder

Ich bin dabei, eine Datenbanktabelle zu entwerfen, und stelle mir wieder einmal die gleiche dumme Frage: Wie lang sollte das Feld für den Vornamen sein?

Hat jemand eine Liste mit vernünftigen Längen für die gängigsten Felder wie Vorname, Nachname und E-Mail-Adresse?

423voto

Eric Z Beard Punkte 36325

Ich habe gerade meine Datenbank mit Millionen von Kunden in den USA abgefragt.

  • Die maximale Vorname Länge war 46. Ich habe mich für 50 entschieden. (Natürlich waren nur 500 davon länger als 25, und das waren alles Fälle, in denen Datenimporte dazu führten, dass zusätzlicher Müll in diesem Feld landete).

  • Nachname war dem Vornamen ähnlich.

  • E-Mail-Adressen Höchstgrenze bei 62 Zeichen. Die meisten der längeren waren eigentlich Listen von E-Mail Adressen, getrennt durch Semikolons.

  • Straße und Hausnummer liegt bei maximal 95 Zeichen. Die langen Zeichen waren alle gültig.

  • Max Stadt Länge war 35.

Das sollte eine anständige statistische Verteilung für die Menschen in den USA sein. Wenn Sie die Lokalisierung berücksichtigen müssen, können die Zahlen erheblich abweichen.

195voto

Ian Nelson Punkte 53679

Katalog der Datenstandards der britischen Regierung die britischen Standards für diese Art von Dingen. Vorgeschlagen werden 35 Zeichen für den Vornamen und den Nachnamen bzw. 70 Zeichen für ein einziges Feld für den vollständigen Namen und 255 Zeichen für eine E-Mail-Adresse. Unter anderem

89voto

jrc Punkte 17733

Die Empfehlung des W3C:

Wenn Sie ein Formular oder eine Datenbank entwerfen, die Namen von Personen akzeptiert mit einer Vielzahl von Hintergründen, sollten Sie fragen Sie sich, ob Sie ob Sie wirklich getrennte Felder für den Vornamen und den Nachnamen benötigen.

Denken Sie daran, dass Namen in manchen Kulturen viel länger sein können als Ihre eigenen. Vermeiden Sie eine Begrenzung der Feldgröße für Namen in Ihrer Datenbank . Gehen Sie insbesondere nicht davon aus, dass ein aus vier Zeichen bestehender japanischer Name in UTF-8 in vier Bytes passt - Sie werden wahrscheinlich Sie benötigen wahrscheinlich 12.

https://www.w3.org/International/questions/qa-personal-names

Für Datenbankfelder, VARCHAR(255) ist eine sichere Standardwahl, es sei denn, Sie können einen guten Grund finden, etwas anderes zu verwenden. Für typische Webanwendungen wird die Leistung kein Problem sein. Optimieren Sie nicht voreilig.

76voto

Neil McGuigan Punkte 43578

Einige mit ziemlicher Sicherheit richtige Spaltenlängen

                            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

Eine lange Tirade über Personennamen

Ein Personenname ist entweder ein Polynym (ein Name mit mehreren sortierbar Komponenten), ein Mononym (ein Name mit nur einer Komponente) oder ein Piktonym (ein Name, der durch ein Bild repräsentiert wird - dies gibt es dank Leuten wie Prinz ).

Eine Person kann mehrere Namen haben, die verschiedene Rollen spielen, z.B. LEGAL, MARITAL, MAIDEN, PREFERRED, SOBRIQUET, PSEUDONYM, usw. Sie könnten Geschäftsregeln haben, wie z. B. "eine Person kann immer nur einen legalen Namen haben, aber mehrere Pseudonyme gleichzeitig".

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"
  }
]

o

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"
  }
]

o

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"
  }
]

o

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 */
  }
]

Vornamen, zweite Vornamen und Nachnamen können aus mehreren Wörtern bestehen, wie z. B. "Billy Bob" Thornton ou Ralph "Vaughn Williams" .

18voto

Kibbee Punkte 64039

Ich würde sagen, dass man sich auf der hohen Seite bewegen sollte. Da Sie wahrscheinlich varchar verwenden werden, wird jeder zusätzliche Platz, den Sie erlauben, nicht wirklich zusätzlichen Platz verbrauchen, es sei denn, jemand braucht ihn. Ich würde sagen, dass Sie für Namen (Vor- oder Nachname) mindestens 50 Zeichen und für E-Mail-Adressen mindestens 128 Zeichen verwenden sollten. Es gibt da draußen einige wirklich lange E-Mail-Adressen.

Eine andere Sache, die ich gerne mache, ist der Besuch von Lipsum.de und bitten Sie ihn, einen Text zu erstellen. Auf diese Weise können Sie sich ein gutes Bild davon machen, wie 100 Bytes aussehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X