1.前言
当我们涉及到要存储邮箱地址的时候,我们都知道应该存储为字符型,但是应该存储多长呢?
2.Stackoverflow
StackOverflow一直是搜索答案的利器,这一次也不例外。这里多说一句,其实在用英文检索时,第一次不知道如何表达,可以只输入一些关键字,看到自己想要的问题之后记住这个表达方式就行,慢慢就会怎么说了,问题标题很有规律。我们在论坛上,找到这么一个贴子:What is the longest possible email address? 这里公布答案:
email varchar(254)
为什么是254呢?
其实就是下面这个老铁说的那样,
这里提到的octet其实就是byte,只不过在网络传输中经常使用octet,没有特别含义。为什么有这种区别呢?这是由于某些早期的电脑的1 byte=10 bit
. 这里需要解释一下, username(用户名)最长64,domain(域名)最长255,那拼在一起应该是255+64+1(@符)=320吧?不是的!它们俩加在一起叫path,它规定了最大长度为256,但是path长这个样子:
<username@domain>
我们当然存储的时候不会存储这两个尖括号了,所以我们存path只能到254。 故长度为254.
3.总结
综上,邮箱地址存储时应该存储为:
email varchar(254)