ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

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

2019-08-05 12:24:29  阅读:817  来源: 互联网

标签:mysql mariadb datatypes


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

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”示例.

标签:mysql,mariadb,datatypes
来源: https://codeday.me/bug/20190805/1588776.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有