Mal*_*ala 87 sql convention varchar
我认识到电子邮件地址基本上可以无限长,所以我在varchar电子邮件地址字段上施加的任何大小都是任意的.但是,我想知道"标准"是什么?你们有多长时间制作它?(姓名字段的相同问题......)
更新:显然,电子邮件地址的最大长度为320(<= 64名称部分,<= 255域).你用这个吗?
ZZ *_*der 160
理论上的限制真的很长,但你真的需要担心这些长的电子邮件地址吗?如果有人无法使用100-char电子邮件登录,您真的关心吗?我们实际上更喜欢他们不能.
一些统计数据可能会对这个问题有所了解.我们分析了一个拥有超过1000万个电子邮件地址的数 这些地址未得到确认,因此存在无效地址.这是一些有趣的事实,
我们通过丢弃超过40的任何东西来清理数据库.好消息是没有人抱怨,但坏消息是没有很多记录得到清理.
Eri*_*ric 16
我过去刚刚做了255,因为这是如此根深蒂固的短暂但不太短的输入标准.那,我是一个习惯的生物.
但是,由于最大值是319,我会nvarchar(320)
在列上做.要记住了@
!
nvarchar
不会使用您不需要的空间,因此如果您只有20个字符的电子邮件地址,则只占用20个字节.这是相对于一个nchar
将始终占据其最大(它的权利垫用空格值).
我也用它nvarchar
代替,varchar
因为它是Unicode.鉴于电子邮件地址的波动性,这绝对是可行的方法.
以下电子邮件地址仅为94个字符:
i.have.a.really.long.name.like.seetharam.krishnapillai@AReallyLongCompanyNameOfSomeKind.com.au
即使是一个有着92年历史的技术专家也会想出如何注册一个不错的短邮件地址,而只是使用它,而不是在你的注册页面输入.
磁盘空间可能不是问题,但允许用户输入字段比它们需要的时间长许多至少有两个问题:
我喜欢50个字符:
123456789.123456789.123456789@1234567890123456.com
如果百万用户中的一个用户必须使用他们的其他电子邮件地址来使用我的应用程序,那就这样吧.
(统计数据显示,实际上没有人为电子邮件地址输入超过40个字符,例如:ZZ Coder的答案/sf/answers/90814671/)
根据本文,基于适当的 RFC 文档,它不是 320,而是 254:http : //www.eph.co.uk/resources/email-address-length-faq/
编辑:使用 WayBack 机器: https ://web.archive.org/web/20120222213813/http://www.eph.co.uk/resources/email-address-length-faq/
电子邮件地址的最大长度是多少?
254 个字符
关于最大有效电子邮件地址大小似乎有些混乱。大多数人认为它是 320 个字符(用户名 64 个字符 + 域 255 个字符 + @ 符号 1 个字符)。其他来源建议 129 (64 + 1 + 64) 或 384 (128+1+255,假设用户名的长度在未来加倍)。
这种混淆意味着你应该注意“健壮性原则”(“开发人员应该仔细编写与现有 RFC 密切相关的软件,但接受和解析可能与这些 RFC 不一致的同行的输入。” - 维基百科)在编写处理以下问题的软件时电子邮件地址。此外,一些软件可能会因幼稚的假设而瘫痪,例如认为 50 个字符就足够了(示例)。您的 200 个字符的电子邮件地址在技术上可能是有效的,但如果大多数网站或应用程序拒绝它,这对您没有帮助。
实际的最大电子邮件长度目前为 254 个字符:
“RFC 3696 的原始版本确实说 320 是最大长度,但 John Klensin (ICANN) 随后承认这是错误的。”
“这是由域的最大长度(255 个字符)+邮箱的最大长度(64 个字符)+@ 符号 = 320 个字符的简单算术引起的。错误。这个鸭子实际上记录在 RFC3696 的原始版本中。它已在勘误表中更正。实际上 RFC5321 对 SMTP 事务的路径元素有 256 个字符的限制。但这包括电子邮件地址周围的尖括号,因此电子邮件地址的最大长度为 254 个字符。” - 多米尼克·塞耶斯