代码之家  ›  专栏  ›  技术社区  ›  Patrick McElhaney

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

  •  330
  • Patrick McElhaney  · 技术社区  · 16 年前

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

    有人有最常见字段的合理长度列表吗 例如名字、姓氏和电子邮件地址?

    13 回复  |  直到 6 年前
        1
  •  9
  •   jrc    6 年前

    W3C的建议:

    如果设计的表单或数据库将接受来自人员的名称 有各种各样的背景,你应该 问问你自己 对于给定的名称和姓氏,确实需要有单独的字段。

    记住,在某些文化中,名字可能要长得多 比你自己的。 避免限制您的 数据库 . 尤其是,不要假定一个四个字符 以utf-8表示的日文名称将适合您可能需要的四个字节 实际上需要12个。

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

    对于数据库字段, VARCHAR(255) 是一个安全的默认选择,除非你能想出一个好的理由来使用其他东西。对于典型的Web应用程序,性能不会成为问题。不要过早地优化。

        2
  •  277
  •   Patrick McElhaney    16 年前

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

    • 最大值 名字 长度是46。我和50人一起去。(当然,其中只有500个超过25岁,而所有这些情况下,数据导入都会导致该领域出现额外的垃圾。)

    • 类似于名字。

    • 电子邮件地址 62岁被罚出局 字符。大部分较长的 实际上是电子邮件列表 用分号分隔的地址。

    • 街道地址 95岁出局 字符。长的都是 有效。

    • 马克斯 城市 长度为35。

    这对美国人民来说应该是一个不错的统计分布。如果要考虑本地化,数字可能会有很大的变化。

        3
  •  163
  •   flu    12 年前

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

        4
  •  46
  •   Neil McGuigan    7 年前

    一些可能是正确的列长度

                                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
    

    关于个人名字的长篇大论

    一个个人名字或者是一个同名(一个名字有多个 可分类的 组件),单名(只有一个组件的名称),或象形文字(由图片表示的名称-这是由于像王子这样的人而存在的)。

    一个人可以有多个名字,扮演各种角色,如法律、婚姻、婚前、首选、绰号、化名等。您可能有一些业务规则,例如“一个人一次只能有一个合法名称,但一次只能有多个化名”。

    一些例子:

    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
  •  16
  •   Patrick McElhaney    16 年前

    我想说,往高处走是不对的。因为您可能会使用varchar,所以您允许的任何额外空间实际上不会占用任何额外空间,除非有人需要它。我会说,对于名字(名字或姓氏),至少输入50个字符,对于电子邮件地址,至少输入128个字符。那里有一些很长的电子邮件地址。

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

        6
  •  11
  •   BenMorel fullstacklife    9 年前

    我几乎总是使用2的幂,除非有一个很好的理由不使用,例如面向客户的接口,其中一些其他数字对客户有特殊意义。

    如果你坚持2的力量,它会使你保持在一组有限的普通大小,这本身就是一件好事,它使你更容易猜测你可能遇到的未知物体的大小。我看到很多其他人这样做,有一些美学上的乐趣。当我看到这个的时候,它通常会给我一种很好的感觉,这意味着设计师就像一个工程师或数学家。不过,如果只使用质数,我可能会担心。:)

        7
  •  4
  •   Steve Chambers    10 年前

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

        8
  •  2
  •   Micheal Mouner Mikhail Youssif    12 年前

    第一人称:35 姓氏:35 电子邮件:255 根据服务器和浏览器,网址:60+ 城市:45 地址:90

        9
  •  1
  •   Loren Charnley    16 年前

    只是看看我的电子邮件档案,有很多很长的“名字”(当然,第一个是什么意思是由文化变化)。其中一个例子是Krishnamurthy——13个字母长。基于此,一个好的猜测可能是20到25个字母。电子邮件应该是 许多的 因为你可能还有firstname.lastname@somedomain.com。此外,gmail和其他一些邮件程序允许您使用firstname.lastname+sometag@somedomain.com,其中“sometag”是您想放在那里的任何东西,以便您可以使用它来对传入的电子邮件进行排序。我经常会遇到不允许我在不考虑任何标签的情况下输入完整电子邮件地址的Web表单。因此,如果您需要一个固定的电子邮件字段,可能需要25.25+15@20.3个字符,总共90个字符(如果我的计算正确!).

        10
  •  1
  •   PodTech.io    7 年前

    这些可能对某人有用;

    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/

        11
  •  0
  •   John Douthat    16 年前

    我通常会选择:

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

    如果我担心名字的长字段,我有时也会选择50个名字字段,因为现在存储空间很少是一个问题。

        12
  •  0
  •   ColinYounger    16 年前

    如果你需要考虑本地化(对于我们以外的人!)在你的环境中是可能的,我建议:

    为名称的每个组件定义数据类型-注意:某些区域性有两个以上的名称!然后输入全名,

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

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

        13
  •  -1
  •   SQLMenace    16 年前

    是瓦查尔,对吧?所以,如果你使用50或25,最好是安全的,使用50,也就是说,我认为我见过的最长的大约是19岁左右。姓氏较长