电子邮件地址可接受的字段类型和大小? [复制]
Posted
技术标签:
【中文标题】电子邮件地址可接受的字段类型和大小? [复制]【英文标题】:Acceptable field type and size for email address? [duplicate] 【发布时间】:2012-01-04 18:25:00 【问题描述】:可能重复:Common mysql fields and their appropriate data typesWhat are the recommended database column sizes for names?
我正在寻找将电子邮件地址存储到 mysql 表中的最正确的字段类型和大小。
我最初考虑使用 varchar 255,但我认为 255 可能太多甚至太少,我能够捕获所有有效电子邮件地址的平均大小是多少?
【问题讨论】:
What are the recommended database column sizes for names? 或 What are the recommended database column sizes for names? 或 Common mySQL fields and their appropriate data types 的可能重复项 @gbn,前两个与电子邮件地址没有任何关系,但第三个是你的赢家。看来这是一个骗局。 @paxdiablo:第一个链接的接受答案提到了长度为 320 的电子邮件,尽管标题具有误导性,这就是我所看到的。第二个链接标题错误应该是“数据库字段的标准长度列表”。所有 3 个都是 Google 搜索的前 3 个 :-) gbn 好吧,在提出问题之前我确实尝试过四处搜索,但使用术语 mysql email 不足以找到任何相关内容。 @gbn,我倾向于只在问题是 question 的欺骗时将问题标记为欺骗,而不是其中一个答案可能包含所需信息的事实。那是因为我通常的用例是寻找询问我需要知道什么的问题。但这只是我的观点,无论如何,因为你的第三个链接是是一个骗子:-) 【参考方案1】:根据RFC 5321,正向和反向路径最长可达256个字符,因此电子邮件地址最长可达254个字符。使用 255 个字符是安全的。
【讨论】:
赞成,因为您是第一个谈论 RFC 5321 的人。 我喜欢这个答案。点赞。 请注意,VARCHAR(255) 不一定意味着 255 个八位字节(如 RFC 中所指定)。事实上***.com/a/3739871/582917 表示 CHAR、VARCHAR 和 TEXT 类型现在计算逻辑字符单元,如果您使用的是 utf8mb4,则它可能是可变大小的。 所以我猜测 255 限制应该是一个八位字节限制,在使用 utf8 编码的电子邮件地址时需要考虑这一点。 如何在没有多余的情况下输入“@”?【参考方案2】:RFC5321 和RFC5322 是 SMTP 的相关标准,指定地址由本地部分和域组成。他们进一步指出,它们的最大大小分别为 64 和 253 个八位字节,尽管正向和反向路径还有 256 个八位字节的限制,包括标点符号(实际上是 254 个)。
所以这应该就是你所需要的。
【讨论】:
【参考方案3】:任何企业 Web 应用程序中的标准都是 255 长度的 varchar
varchar(255)
【讨论】:
【参考方案4】:在这里使用 VARCHAR 255 可能是最好的主意 - 为每个电子邮件地址提供更多字节不会有任何损失。 255 也足够大,可以避免删除任何正常的电子邮件地址。
【讨论】:
【参考方案5】:嗯 varchar (255) 对我来说是一个标准。而且我认为这是存储电子邮件的好方法。
【讨论】:
【参考方案6】:What is the maximum length of a valid email address?
你应该使用 varchar 字段, 这使得大小无关紧要(假设您没有在其上建立索引)
【讨论】:
以上是关于电子邮件地址可接受的字段类型和大小? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在接受多个电子邮件地址的字段上实现 MVC 不显眼的验证