我认识到电子邮件地址基本上可以无限长,所以我在varchar电子邮件地址字段中设置的任何大小都是任意的。然而,我想知道什么是“标准”?你们能坚持多久?(名称字段的问题相同...)
更新:显然一个电子邮件地址的最大长度是320 (<=64名称部分,<= 255域名)。你用这个吗?
发布于 2009-08-19 01:01:45
理论上的限制真的很长,但你真的需要担心这些长的电子邮件地址吗?如果有人不能用100个字符的电子邮件登录,你真的在乎吗?我们实际上更希望他们不能。
一些统计数据可能会为这个问题提供一些线索。我们分析了一个包含1000多万个电子邮件地址的数据库。这些地址未被确认,因此存在无效地址。这里有一些有趣的事实,
我们清理了数据库,丢弃了任何超过40的数据。好消息是没有人抱怨,但坏消息是没有太多记录被清理掉。
发布于 2009-08-19 00:25:33
我过去只做了255,因为这是简短但不太短的输入的根深蒂固的标准。我是个习惯性的生物。
但是,由于最大值为319,因此我将对列执行nvarchar(320)。一定要记住@!
nvarchar不会使用你不需要的空格,所以如果你只有一个20个字符的电子邮件地址,它只会占用20个字节。这与总是占用其最大值的nchar形成对比(它用空格右填充数值)。
我也会用nvarchar代替varchar,因为它是Unicode。考虑到电子邮件地址的易变性,这绝对是一条可行的道路。
发布于 2009-08-19 00:33:23
以下电子邮件地址仅为94个字符:
i.have.a.really.long.name.like.seetharam.krishnapillai@AReallyLongCompanyNameOfSomeKind.com.au
即使是92岁的技术恐惧者也会想办法注册一个漂亮的短gmail地址,然后直接使用它,而不是在注册页面中输入这个地址。
磁盘空间可能不是问题,但允许用户输入字段比所需长度长许多倍至少存在两个问题:
我喜欢50个字符:
123456789.123456789.123456789@1234567890123456.com
如果一百万个用户中有一个必须使用他们的其他电子邮件地址才能使用我的应用程序,那就这样吧。
(统计数据显示,没有人实际输入的电子邮件地址超过40个字符,例如: ZZ Coder's answer https://stackoverflow.com/a/1297352/87861)
https://stackoverflow.com/questions/1297272
复制相似问题