数据库字段的标准长度列表

时间:2008-08-21 19:50:43

标签: database standards

我正在设计一个数据库表,并再次问自己同样愚蠢的问题: firstname字段应该多长时间?

是否有人有最常用字段的合理长度列表,例如名字,姓氏和电子邮件地址?

13 个答案:

答案 0 :(得分:284)

我刚刚向美国数百万客户查询了我的数据库。

  • 名字的最大长度是46.我跟50去了。(当然,其中只有500个超过25,而且他们都是数据导入导致额外垃圾的情况在那个领域结束。)

  • 姓氏与名字类似。

  • 电子邮件地址最高限额为62 字符。大多数较长的 实际上是电子邮件列表 地址以分号分隔。

  • 街道地址最高可达95 字符。很长的都是 有效的。

  • 最长城市长度为35。

对于美国人来说,这应该是一个不错的统计传播。如果您要考虑本地化,则数字可能会有很大差异。

答案 1 :(得分:163)

UK Government Data Standards Catalogue详细说明了英国对这类事情的标准。 它为每个给定名称和姓氏建议35个字符,或者为单个字段保存全名70个字符,为电子邮件地址建议255个字符。除其他外......

答案 2 :(得分:47)

某些可能正确的色谱柱长度

                            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(仅包含一个组件的名称)或Pictonym(由图片表示的名称 - 存在)由于像Prince这样的人。)

一个人可以有多个名字,扮演角色,如法律,婚姻,女性,首选,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" ThorntonRalph "Vaughn Williams"

答案 3 :(得分:16)

我会说偏见偏高。由于您可能正在使用varchar,因此除非有人需要,否则您允许的任何额外空间实际上不会占用任何额外空间。我会说名字(第一个或最后一个),至少50个字符,对于电子邮件地址,至少要128个。有一些非常长的电子邮件地址。

我喜欢做的另一件事是转到Lipsum.com并要求它生成一些文字。这样你就可以很好地了解100个字节的样子。

答案 4 :(得分:12)

W3C的建议:

  

如果设计的表单或数据库将接受人们的姓名   具有各种背景,您应该问自己是否   确实需要给定名称和姓氏的字段分开。

     

…请记住,某些文化中的名称可能会更长   比你自己的…避免限制您的姓名的字段大小   数据库。特别是,不要假设四字符   UTF-8中的日语名称将适合四个字节-您可能会   实际需要12。

     

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

对于数据库字段,VARCHAR(255)是一个安全的默认选择,除非您确实有充分的理由使用其他内容。对于典型的Web应用程序,性能将不是问题。不要过早优化。

答案 5 :(得分:11)

我几乎总是使用2的幂,除非有充分的理由不这样做,例如面向客户的界面,其他一些数字对客户有特殊意义。

如果你坚持使用2的幂,它会让你保持在一组有限的常见尺寸内,这本身就是一件好事,它可以让你更容易猜出你可能遇到的未知物体的大小。我看到有很多其他人这样做,并且有一些美学上令人愉悦的东西。当我看到它时,它通常给我一种良好的感觉,这意味着设计师就像工程师或数学家一样思考。虽然我可能会担心只使用素数。 :)

答案 6 :(得分:4)

我想找到同样的,并且在接受的答案中提到的英国政府数据标准听起来很理想。然而,这些似乎都不再存在 - 经过扩展搜索后,我在这里的档案中找到了它:http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/schemasstandards/e-gif/datastandards.aspx。需要下载zip,解压缩然后在html文件夹中打开default.htm。

答案 7 :(得分:2)

名字:35 姓氏:35 电子邮件:255 url:60+根据服务器和浏览器 城市:45 地址:90

答案 8 :(得分:1)

只是看看我的电子邮件存档,有很多很长的“第一”名称(当然首先是文化的变量)。一个例子是Krishnamurthy--长度为13个字母。基于此,一个好的猜测可能是20到25个字母。电子邮件应该 更长,因为您可能拥有firstname.lastname@somedomain.com。此外,gmail和其他一些邮件程序允许您使用firstname.lastname+sometag@somedomain.com,其中“sometag”是您要放置的任何内容,以便您可以使用它来对传入的电子邮件进行排序。我经常遇到不允许我在不考虑任何标签的情况下输入完整电子邮件地址的网络表单。所以,如果你需要一个固定的电子邮件字段,可能是25.25+15@20.3字符,共90个字符(如果我的数学合适!)。

答案 9 :(得分:1)

这些可能对某人有用;

echo -n "1-3,7-9" | perl -ne 's/-/../g;$,=",";print eval $_' 

http://www.interoadvisory.com/2015/08/6-areas-inside-of-linkedin-with-character-limits/

答案 10 :(得分:0)

我通常会选择:

名字:30个字符 姓氏:30个字符 电子邮件:50个字符 地址:200个字符

如果我担心这些名字的长字段,我有时可能会使用50字符作为名称字段,因为这些天存储空间很少成为问题。

答案 11 :(得分:0)

如果您需要考虑本地化(对于我们这些美国以外的人来说!),并且可以在您的环境中进行,我建议:

为名称的每个组件定义数据类型 - 注意:某些文化有两个以上的名称!然后有一个全名类型,

然后本地化变得简单(就姓名而言)。

这同样适用于地址,BTW - 不同的格式!

答案 12 :(得分:-1)

它是varchar对吗?因此,如果你使用50或25,最好是安全并使用50,这并不重要,我说我相信我看到的最长时间大约是19左右。姓氏较长