我设计一个数据库表,并再次问自己同样愚蠢的问题: 名字字段应该有多长?
有没有人有最常见的领域 ,如姓,名和电子邮件地址长度合理的清单 ?
我设计一个数据库表,并再次问自己同样愚蠢的问题: 名字字段应该有多长?
有没有人有最常见的领域 ,如姓,名和电子邮件地址长度合理的清单 ?
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(有多个排序组件的名称),单名(只有一个组件的名称),或Pictonym(用图片表示的名字-这个存在因人喜欢王子)。
一个人可以有多个名称,玩的角色,如法律,婚姻,MAIDEN,具体,绰号,假名,等您可能有业务规则,如“一个人只能有一个合法的名字在同一时间,但多个假名在同一时间”。
一些例子:
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个字节看起来像一个好主意。
我几乎总是使用2的幂,除非有一个很好的理由不,如面向界面,在其他一些号码有特殊的含义给客户一个客户。
如果你坚持2的幂它让你有限的一组常见的尺寸,这本身就是一件好事之内,它可以更容易猜出你可能会遇到不明物体的大小。 我看到了相当数量的其他人这样做的,而且有一些美观了。 它通常给了我一个很好的感觉,当我看到这一点,这意味着设计师的想法像工程师或数学家。 尽管我可能会担心,如果只使用素数。 :)
我想找到同样的和接受的答案中提到的英国政府数据标准响起理想。 然而这些都不似乎存在了-一个扩展的搜索,我发现它在这里存档后: http://webarchive.nationalarchives.gov.uk/+/http://www.cabinetoffice.gov.uk/govtalk/ schemasstandards /电子GIF / datastandards.aspx 。 需要下载的zip,解压,然后在html文件夹中打开的default.htm。
姓:35姓:35电子邮件:255网址:60+根据服务器和浏览器市:45地址:90
只是看看虽然我的电子邮件存档,也有一些相当长的“第一”的名字(当然是什么意思首先是文化变量)。 一个例子是克里希纳穆尔蒂 - 这是13个字母。 一个美好的期待可能会在此基础上20至25个字母。 电子邮件应该是更长的时间,因为你可能有firstname.lastname@somedomain.com。 此外,Gmail和其他一些邮件程序允许您使用firstname.lastname+sometag@somedomain.com其中“sometag”是要放在那里,这样就可以用它来收到的邮件进行排序任何东西。 我经常碰到Web窗体不允许我把我的完整的电子邮件地址,而不考虑任何标签。 所以,如果你需要一个固定的电子邮件领域也许在人物像25.25+15@20.3共90个字符(如果我做了我的数学吧!)。
这些可能是有用的人;
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/
我通常用:
姓 :30个字符
名字 :30个字符
电子邮件 :50个字符
地址 :200个字符
如果我关心的名称长字段,我有时会与50名田太去,因为存储空间是很少的问题,这些天。
如果您需要考虑本地化(!对于我们这些在美国以外),并有可能在你的环境中,我建议:
定义数据类型的名称的每个组件 - 注意:有些文化中有两个以上的名字! 然后对全名类型,
然后定位就变得简单了(只要名称而言)。
这同样适用于地址,顺便说一句-不同的格式!
它是VARCHAR吧? 所以,那么不要紧,如果你使用50或25,最好是安全的,并使用50,这说我相信我所看到的最长约为19左右。 姓氏是长