データベースフィールドの標準長のリスト


394

私はデータベーステーブルを設計していて、もう一度同じ愚かな質問をします。

名、姓、電子メールアドレスなど、最も一般的なフィールドの妥当な長さのリストを持っている人はいますか?


1
名前にアルファベット以外の文字を使用できることを確認してください。彼の姓のハイフンを指しています
Chris Marasti-Georg

3
電子メールアドレスの最大長については、「有効な電子メールIDの最大長」を参照してください。
outis

2
注:「姓」と「名」の両方を必要としないでください。私のように、名前が1つしかない人もいます。(証明:web.archive.org/web/20130115074449/http://saizai.com/...
サイ

ブログやプロフィールへのリンクなど、URLはどうですか?
AlikElzin-kilaka 2015年

回答:


34

W3Cの推奨事項:

さまざまな背景を持つ人々からの名前を受け入れるフォームまたはデータベースを設計する場合は、名と姓のフィールドを別々にする必要があるかどうかを自問する必要があります。

…一部の文化では、名前が自分の名前よりもかなり長くなる可能性があることに注意してください。… データベース内の名前のフィールドサイズを制限しないでください。特に、UTF-8の4文字の日本語名が4バイトに収まると想定しないでください。実際には12文字が必要になる可能性があります。

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

データベースフィールドの場合、VARCHAR(255)実際に他の何かを使用する十分な理由が考えられない限り、これは安全なデフォルトの選択です。一般的なWebアプリケーションの場合、パフォーマンスは問題になりません。時期尚早に最適化しないでください。


26
その質問をしてから10年になります。私のベルトの下でさらに10年の経験があるので、私はあなたに同意する傾向があります。
Patrick McElhaney、2018

2
封筒に255文字の名前を正確にどのように印刷しますか?
マイケル・ポッター

316

アメリカの何百万人もの顧客にデータベースを問い合わせたところです。

  • の最大長は46でした。50を使用します。(もちろん、そのうち25を超えていたのは500だけでした。これらはすべて、データインポートによってそのフィールドで余分なジャンクが発生するケースでした。)

  • 姓は名に似ていました。

  • 最大62文字のメールアドレス。より長いもののほとんどは、実際にはセミコロンで区切られた電子メールアドレスのリストでした。

  • 住所は最大95文字です。長いものはすべて有効でした。

  • 最大都市長は35でした。

これは、米国の人々にとってまともな統計的広がりになるはずです。ローカリゼーションを検討している場合、数値は大幅に異なる可能性があります。


4
あなたと比較すると、私がアクセスできるデータベースは小さいですが、そこにも138文字のメールアドレスが見つかりました。localpartコンポーネントは、明らかに何らかのLDAP(またはAD?)識別名です。
Bernd Jendrissek 2011年

2
電話番号はどうですか?
ceving

@EricZBeard「番地」には家の番号が含まれていますか?
noɥʇʎԀʎzɐɹƆ

3
データベース内の電子メールアドレスの平均長は、推奨値としては適切ではありません。電子メールアドレスの有効な最大長は254文字で、データベースで指定された長さである必要があります。さらに、1つの列に電子メールアドレスのリストがあることは、データが正規化されておらず、回答がさらに無効になることを意味します。
マリオ

1
@MGOwenまず、データベースの目的がわかりません。特定の設定では、電子メールが「長すぎる」などの軽薄な問題が原因で誰かがアクセスを拒否されていることが大きな問題である可能性があります。次に、あなたが投稿したリンクは「最長の有効なものは89である」と言っていますが、これは62であると言っています。どちらが正しいですか。任意の番号を選択したい場合、または名前を住所の一部として含める必要があるなどの正当な理由がある場合は、問題ありません。しかし、それでもなお合理的であり、疑わしい場合は仕様を参照してください。「私のデータベースは最大でxです」と言っている一人の人は逸話であると私はまだ思います。
マリオ

170

英国政府データ標準カタログは、この種の事柄に関する英国の標準を詳述しています。名と姓のそれぞれに35文字、またはフルネームを保持する単一のフィールドに70文字、電子メールアドレスに255文字を推奨しています。そのことなど..


3
サイト:リンクは、私はGoogleで、2010年、10月22日のように更新する必要があります。* gov.uk名「35文字」とこのdocたjustice.gov.uk/guidance/docs/electoral-reg-standards.pdfを
Tony R

20
ただ考えて...スペースが必要な場合、1つのフィールドの姓名は71文字にすべきではありませんか?
ジョセフレッドファーン

8
まあ、明らかに彼らは時折の長い姓(最大35文字)と時折の長い姓(最大35文字)を期待していますが、長い姓と姓の両方の組み合わせを持つ個人を必ずしも期待しているわけではありません。それは貪欲です;-)
Ian Nelson

6
エルタヒルエルファディルエルシドディッアブデラマンモハメッドアーメドアブデルカリムエルマハディがオンラインフォームに入力するときに実際にすべての名前を使用するとしたら、感心するでしょう。私は2つのミドルネームを持っていますが、公式(政府など)のフォーム以外では1つしか使用しません。
Leon、

2
@ ian-nelson RFC 3696に基づく電子メールの長さ:その制限は、「ローカルパーツ」(「@」の前)で最大64文字(オクテット)、ドメインパーツ(後)で最大255文字(オクテット)です。 「@」)の場合、全長は320文字です。Eメールを処理するシステムは、めったに遭遇しない場合でも、そのような長いアドレスを処理できるように準備する必要があります。
Piotr Nawrot

53

おそらく正しい列の長さ

                            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

個人名に対する長い怒り

個人名は、Polynym(並べ替え可能な複数のコンポーネントを持つ名前)、Mononym(1つのコンポーネントのみを持つ名前)、またはPictonym(写真で表される名前-これはPrinceのような人々のために存在します)のいずれかです。

人は複数の名前を持つことができ、LEGAL、MARITAL、MAIDEN、PREFERRED、SOBRIQUET、PSEUDONYMなどの役割を果たします。一度に」。

いくつかの例:

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

または

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

または

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

または

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

与えられた名前は、ミドルネームは、姓のような複数の単語ことができ"Billy Bob" Thornton、またはRalph "Vaughn Williams"


5
これは非常に有益ですが、非常に役立つ回答ではありません。次回「おそらく正しい」答えが必要になったときにお知らせします。
n8bar 2016

16

私はハイサイドで誤解すると言うでしょう。おそらくvarcharを使用することになるため、許可された余分なスペースは、誰かが必要としない限り、実際には余分なスペースを使い果たしません。名前(最初または最後)には50文字以上、メールアドレスには128文字以上にします。非常に長いメールアドレスがいくつかあります。

私がやりたいもう1つのことは、Lipsum.comにアクセスして、テキストを生成するよう依頼することです。そうすることで、100バイトがどのように見えるかを正確に把握できます。


6
ああ、私の最初の人は、フィールドが大きいからといって必ずしもストレージスペースが増えるとは限らないため、varcharの「var」を意味します。しかし、NVarcharは通常、名前に対してより意味があります。
Tao

実装によって異なります。VARCHARがUTF-8をサポートしている場合は、NVARCHARは必要ありません。
dan04 2010

2
[N]Varcharただし、サイズインデックスに影響します。
RBarryYoung 2013年

11

私は、他の数値が顧客にとって特別な意味を持つ顧客向けのインターフェイスなど、適切な理由がない限り、ほとんど常に2の累乗を使用します。

2の累乗に固執する場合は、一般的なサイズの制限されたセット内に収まります。これ自体は良いことであり、未知のオブジェクトのサイズを簡単に推測できるようになります。私はこれをしている他の多くの人々を見ています、そしてそれについて審美的に楽しいものがあります。これを見ると一般的に良い感じがします。それは、デザイナーがエンジニアや数学者のように考えていたことを意味します。素数だけが使用されているかどうかはおそらく心配でしょう。:)


3
文字列はゼロインデックスの文字列として表示され、ヌル文字、バイト、または2バイト(UTF-8)で終了することが多いため、2ⁿ-1、2ⁿ-2または2 even-4 )。また、一部のデータベースでは、varcharで255を超えると、ストレージ用に追加のバイトが必要になります(stackoverflow.com/questions/2340639/…を参照)。
Pocketsand

4

私は同じものを見つけたかったし、受け入れられた回答で言及された英国政府のデータ基準は理想的に聞こえた。しかし、これらはもう存在していないようです-拡張検索の後で、私はここのアーカイブでそれを見つけました:http : //webarchive.nationalarchives.gov.uk/+/http : //www.cabinetoffice.gov.uk/govtalk/ schemasstandards / e-gif / datastandards.aspx。zipをダウンロードして解凍し、htmlフォルダーのdefault.htmを開く必要があります。



2
+------------+---------------+---------------------------------+
|   Field    | Length (Char) |           Description           |
+------------+---------------+---------------------------------+
|firstname   | 35            |                                 |
|lastname    | 35            |                                 |
|email       | 255           |                                 |
|url         | 60+           | According to server and browser |
|city        | 45            |                                 |
|address     | 90            |                                 |
+------------+---------------+---------------------------------+

編集:間隔を追加しました


1
文字列であるすべてのものにVARCHAR 255を使用しないのはなぜですか?VARCHARは埋め込みを使用せず、追加の1または2バイトで終了します。
radtek、2016

varcharは少し遅いかもしれません。
kta

1

私の電子メールアーカイブを見ても、かなり長い "ファースト"ネームがいくつかあります(もちろん、ファーストが意味するものは文化によって異なります)。その一例がクリシュナムマーシーで、長さは13文字です。これに基づくと、20〜25文字がよいでしょう。あなたはfirstname.lastname@somedomain.comを持っているかもしれないので、電子メールははるかに長いはずです。また、Gmailや他のいくつかのメールプログラムでは、firstname.lastname + sometag @ somedomain.comを使用できます。タグを考慮せずにメールアドレス全体を入力できないWebフォームに頻繁に出くわします。したがって、固定の電子メールフィールドが必要な場合は、25.25 + 15 @ 20.3のような文字で合計90文字にすることができます(計算を正しく行った場合)。


0

私は通常一緒に行きます:

:30文字
:30文字
メール:50文字
アドレス:200文字

名前の長いフィールドが気になる場合は、最近ではストレージスペースの問題がほとんど発生しないため、名前フィールドにも50を使用することがあります。


11
メールは50ですか?実際には254が最大です
マルコ、

0

ローカリゼーションを検討する必要がある場合(米国外の私たちのために!)、それがあなたの環境で可能である場合は、次のことをお勧めします。

名前の各コンポーネントのデータ型を定義します-注:一部のカルチャには3つ以上の名前があります。次に、フルネームのタイプがあります。

その後、ローカリゼーションは単純になります(名前に関する限り)。

同じことは住所、BTWにも当てはまります-異なるフォーマット!


-1

それはvarcharですよね?したがって、50または25を使用するかどうかは問題ではありません。より安全で50を使用することをお勧めします。姓が長い

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.