当前位置: 首页 > 知识库问答 >
问题:

在MySQL中,电话号码的最佳数据类型是什么,Java类型映射应该是什么?

柴英博
2023-03-14

我将MySQL与Spring JDBC模板一起用于我的web应用程序。我需要只存储数字(10)的电话号码。我对使用数据类型的数据类型有点困惑。

  1. MySQL中更可取的数据类型是什么

共有3个答案

赵炯
2023-03-14

考虑使用E.164格式。要获得全面的国际支持,您需要一个15位数的VARCHAR。

有关电话号码本地化的更多信息,请参阅Twilio的建议。

狄誉
2023-03-14

在MySQL中-

可以使用BIGINT而不是INT将其存储为数字。使用BIGINT将在VARCHAR(10)上为每行节省3个字节。

如果您想单独存储“国家/地区编号”。尝试使用VARCHAR(20)。这使您能够在需要时正确存储国际电话号码。

长孙阳嘉
2023-03-14

>

  • 不要尝试将电话号码存储为实际号码。它会破坏格式,删除前面的0s和其他不需要的东西。

    如果选择,您可以将用户输入限制为仅为数字值,但即使在这种情况下,也可以将备份持久化数据保留为字符/字符串,而不是数字。

    在尝试实施任何类型的长度限制、验证或屏蔽(例如XXX-XXXX-XX)之前,请了解更广泛的世界,以及它们的数字长度和格式是如何不同的。

    非数字字符在电话号码中可能有效。一个主要的例子是将国际号码开头的替换为00

    从评论中的对话中编辑:

    • 电话号码和数字有任何关系,这是用户界面上最大的错误之一。把它们想象成地址要好得多,它比电话“数字”更接近它们的实际情况和代表。

  •  类似资料:
    • 问题内容: 我这样存储电话号码: 用户将输入电话号码,而我将使用该电话号码。此应用程序将在全球范围内使用。因此,我还需要国家代码。是存储电话号码的好方法吗?而且,我该如何验证电话号码? 问题答案: 你实际上可能会研究国际标准格式E.164,例如Twilio推荐的格式(该服务具有通过REST请求发送SMS或电话的服务和API)。 这可能是最普遍的电话号码存储方式,尤其是在你使用国际号码的情况下。 1

    • cassandra表中一列的数据类型为timeuuid。 在根据文档创建映射器类时,我不确定timeuuid列应该使用哪种数据类型。我知道它应该是一个等价的Java数据类型,因此我尝试了Java。util。日期请参阅列定义和映射器类列定义,如下所示 我在CRUD操作过程中得到以下信息 找不到请求操作的编解码器:[timeuuid-

    • 问题内容: 在SQLite3中,我将存储一个很长的字符串,看起来像这样: 肯定会超过255个字符,可能会超过1000个字符 列应为,还是其他可能存储长度超过1000个字符的字符串 什么是用于该列的最佳变量类型? 问题答案: 您应该使用。 虽然,这与: 如果列的声明类型包含任何字符串“ CHAR”,“ CLOB”或“ TEXT”,则该列具有TEXT关联性。请注意,类型VARCHAR包含字符串“ CH

    • 问题内容: 我要输入电话号码,包括国家代码,分机号 如果tel_number大于15位,可以使用哪种数据类型,最好使用? 例如,如果我有加拿大的国家代码,则可以使用+2或002。哪个更适合处理? 谢谢你的建议。 问题答案: 好吧,我个人不使用数字数据类型来存储电话号码或相关信息。 您如何存储说001234567的数字?最终结果为1234567,丢失了前导零。 当然,您始终可以将其左移,但前提是您确

    • 本文向大家介绍什么是MySQL ENUM数据类型?使用ENUM数据类型有什么优势?,包括了什么是MySQL ENUM数据类型?使用ENUM数据类型有什么优势?的使用技巧和注意事项,需要的朋友参考一下 与标准数据类型不同,ENUM数据类型是1到65,535个字符串的枚举列表,指示字段的允许值。定义ENUM时,您将创建一个项目列表,必须从中选择该值(或者可以为NULL)。 例如,如果希望字段包含“ A

    • 我正在做一个类项目的游戏,有人建议我用一个图ADT来表示世界地图上的一组领土,这样每个顶点都是一个领土,边代表玩家可以在其中移动的相邻领土。我找到了一个很好的图形ADT(JGraphT)Java库,但我完全不知道什么类型的边应该是... 例如,界面明确要求我为顶点定义一个对象类型(我认为使用我的类型非常有意义),但是边应该是什么?我想不出有什么对象类型可以作为边缘使用。