我将MySQL与Spring JDBC模板一起用于我的web应用程序。我需要只存储数字(10)的电话号码。我对使用数据类型的数据类型有点困惑。
考虑使用E.164格式。要获得全面的国际支持,您需要一个15位数的VARCHAR。
有关电话号码本地化的更多信息,请参阅Twilio的建议。
在MySQL中-
可以使用BIGINT而不是INT将其存储为数字。使用BIGINT将在VARCHAR(10)上为每行节省3个字节。
如果您想单独存储“国家/地区编号”。尝试使用VARCHAR(20)。这使您能够在需要时正确存储国际电话号码。
串
>
不要尝试将电话号码存储为实际号码。它会破坏格式,删除前面的0
s和其他不需要的东西。
如果选择,您可以将用户输入限制为仅为数字值,但即使在这种情况下,也可以将备份持久化数据保留为字符/字符串,而不是数字。
在尝试实施任何类型的长度限制、验证或屏蔽(例如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库,但我完全不知道什么类型的边应该是... 例如,界面明确要求我为顶点定义一个对象类型(我认为使用我的类型非常有意义),但是边应该是什么?我想不出有什么对象类型可以作为边缘使用。