我正在设计一个数据库表,并再次问自己一个愚蠢的问题:名字字段应持续多长时间?
任何人都没有列出最常用字段的合理长度的列表,例如名字,姓氏和电子邮件地址?
我正在设计一个数据库表,并再次问自己一个愚蠢的问题:名字字段应持续多长时间?
任何人都没有列出最常用字段的合理长度的列表,例如名字,姓氏和电子邮件地址?
Answers:
W3C的建议:
如果设计一个可以接受来自不同背景的人的名字的表单或数据库,则应问自己是否真的需要为给定名字和姓氏提供单独的字段。
…请记住,在某些文化中,名字可能比您的名字长很多。… 避免限制数据库中名称的字段大小。特别是,不要假设UTF-8中的四个字符的日语名称适合四个字节,您实际上可能需要12个字符。
https://www.w3.org/International/questions/qa-personal-names
对于数据库字段,这VARCHAR(255)
是一个安全的默认选择,除非您确实可以提出使用其他内容的充分理由。对于典型的Web应用程序,性能将不是问题。不要过早优化。
我刚刚在美国的数百万客户中查询了我的数据库。
名字的最大长度为46。我为50。(当然,其中只有500个超过25,并且在所有情况下,数据导入都会导致该字段中的额外垃圾堆积。)
姓与名相似。
电子邮件地址最多不能超过62个字符。大多数较长的实际上是用分号分隔的电子邮件地址列表。
街道地址不能超过95个字符。长的都是有效的。
最大城市长度为35。
对于美国民众来说,这应该是一个不错的统计分布。如果要考虑本地化,数字可能会有很大差异。
英国政府数据标准目录详细介绍了此类事情的英国标准。对于“给定名称”和“姓氏”,建议使用35个字符;对于保留全名的单个字段,建议使用70个字符;对于电子邮件地址,建议使用255个字符。除其他外..
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,伪狂等。一次”。
一些例子:
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"
。
我会说偏高。由于您可能会使用varchar,因此除非有人需要,否则您允许的任何额外空间实际上都不会用完。我要说的是名字(名字或姓氏)至少50个字符,电子邮件地址至少128个字符。那里有一些很长的电子邮件地址。
我想做的另一件事是去Lipsum.com并要求它生成一些文本。这样,您就可以很好地了解100字节的外观。
[N]Varchar
但是大小会影响您的索引。
除非有充分的理由,否则我几乎总是使用2的幂,例如面对客户的界面,其中其他一些数字对客户有特殊含义。
如果您坚持使用2的幂,那么它将使您处于一组有限的公共大小内,这本身是一件好事,并且使您更容易猜测可能遇到的未知对象的大小。我看到很多其他人都在这样做,并且在美学上令人愉悦。当我看到它时,通常会给我一种很好的感觉,这意味着设计师在想像工程师或数学家。虽然我可能会担心是否仅使用质数。:)
我想找到相同的答案,在接受的答案中提到的英国政府数据标准听起来很理想。但是这些似乎都不存在了-经过扩展搜索后,我在这里的存档中找到了它:http : //webarchive.nationalarchives.gov.uk/+/http : //www.cabinetoffice.gov.uk/govtalk/ schemasstandards / e-gif / datastandards.aspx。需要下载zip,解压缩,然后在html文件夹中打开default.htm。
这些对某人可能有用;
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 | |
+------------+---------------+---------------------------------+
编辑:添加了一些间距
仅查看我的电子邮件存档,就有许多相当长的“名字”(当然,“第一”的含义因文化而异)。一个例子是Krishnamurthy,它长13个字母。基于此,一个很好的猜测可能是20到25个字母。电子邮件应该是多长,因为你可能有firstname.lastname@somedomain.com。另外,gmail和其他一些邮件程序允许您使用firstname.lastname+sometag@somedomain.com,其中“ sometag”是您要放在此处的任何内容,以便您可以使用它对传入的电子邮件进行排序。我经常遇到网络表单,这些表单不允许我输入完整的电子邮件地址而不考虑任何标签。因此,如果您需要一个固定的电子邮件字段,则可能是25.25+15@20.3个字符,总共90个字符(如果我的数学正确!)。
我通常会选择:
名:30个字符
姓:30个字符
电子邮件:50个字符
地址:200个字符
如果我担心名称的长字段,有时我也可能会为名称字段加上50,因为这些天存储空间很少出现问题。