微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

mysql – 电话号码的数据类型:VARCHAR,INT还是BIGINT?

所以这将是今年的虚拟问题,但我需要问,因为这不是我第一次通过这个.看一下下面的表定义:

enter image description here

看一下from_number列,这是一个VARCHAR(45),但它会保存一个电话号码.由于我不知道手机在全世界有多少个号码,所以我试图覆盖几乎所有这些号码.我想尽可能保持数据库的完整性,所以我认为VARCHAR不适合保存这种信息 – 也许我错了,你告诉我 – 所以我在想改变INT甚至是BIGINT.

当我在Workbench中定义一个列时,我应该指定括号()之间的数字,而不是在所有情况下,但在我之前提到的那些中,我必须这样.所以,如果我这样做:BIGINT()我收到此错误

enter image description here

哪个指导我读一下这个MysqL类型here.基本上信息是这样的:

A large integer. … The unsigned range is 0 to 18446744073709551615.

这让我问:当我定义BIGINT()类型时,我应该为括号设置什么值. (我正在使用BIGINT,因为我不知道INT是否可以拥有与手机一样多的数字 – 也许我也错了).在MariaDB / MysqL数据库中创建列的正确方法是哪种?

无论如何,我想知道你的意见,经验,当然我想得到答案

注意:我正在使用MysqL Workbench最新版本来创建ER图.我也在使用MariaDB 10.0.x.

解决方法:

您如何处理带有分机号码的电话号码,例如“1-000-000-0000 ext 1234”?

注意,“”表示应该应用国际拨号规则;所以从北美来说,系统会在国际电话等前面自动知道“011”.

另外,“1-800-DBA-HELP”等电话号码怎么样?

我通常将电话号码存储为文本.话虽如此,这实际上取决于您的电话号码列的重要程度.如果您正在从该列运行自动拨号程序,那么您确实希望确保仅包含数字,并且数据表示格式正确的电话号码.

您可以使用单独的扩展列和带有文本的电话号码,例如我提供的“1-800-DBA-HELP”示例.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐