存QQ号码,究竟该用int类型还是string类型?

开发 前端
QQ,最早的名字是OICQ(Open ICQ),于1999年2月推出。彼时,QQ号的分配还显得非常稀缺且珍贵,最早的QQ号是五位数或六位数。

大家好,我是了不起。

QQ号相信现在玩互联网的基本上人人都有。大多数人应该玩过这个游戏吧,“今天是马化腾的生日,转发这条消息到五个群,你的QQ等级就会多一个太阳。”

看到这里你也许会心一笑,多少年前的老把戏了,还想骗我?但是当初人人想提高QQ等级的年代,应该不少人被骗过。

今天了不起不和大家议旧,而是和大家聊一个一直以来争议很大的问题——存QQ号码,究竟该用int类型还是string类型?

图片图片

1、QQ历史

QQ,最早的名字是OICQ(Open ICQ),于1999年2月推出。彼时,QQ号的分配还显得非常稀缺且珍贵,最早的QQ号是五位数或六位数。

由于那个时代的互联网用户基数较小,能够拥有一个五六位数的QQ号在当时几乎是一种“身份的象征”。

事实上,这些早期的QQ靓号,现在在网上有专门的售卖产业。

后来随着QQ的普及,越来越多的用户开始涌入这个社交平台,然后QQ号长度开始变长,七位,八位,到现在的十一位。

图片图片

2、选择 int 还是字符串?

先看腾讯内部人员的回答:

图片图片

答案很明显了,他们最先开始是用的 int32,后面迁移到 int64 了。

但是这样设计是合理的么?

如果早期程序员设计过身份证号存储的人,应该都吃过亏。

因为最开始身份证号用 bigint 存就可以,后来身份证多出了一个 X,然后......

所以,如果让我来主导QQ设计的话,我会选择 string。

无它,能满足多样化的用户需求,不仅仅是长度,如果后期需要带有特殊符号或其它国家的手机号,那么 string 是一个更为稳妥的选择。用 string 可以确保无论用户输入什么形式的号码,你的程序都能正确处理并保存。

即使int节约内存,查询速度快,但是一旦有需求变更,就会很难受。

责任编辑:武晓燕 来源: Java技术指北
相关推荐

2020-12-22 21:24:45

在线状态服务端状态状态同步

2023-11-24 08:17:38

金额类型存储

2016-11-01 15:16:52

QQ状态即时通讯

2021-01-12 07:44:13

群消息在线

2009-09-07 16:44:28

Linq String

2023-01-18 08:25:23

数据库存储类型

2009-08-27 16:39:26

C# String类型

2022-04-15 10:39:47

MySQL数据类型

2014-12-05 09:49:18

2020-08-31 19:17:24

Python强类型语言弱类型语言

2009-08-27 15:47:00

C#数据类型string

2024-07-09 08:00:48

C#var​关键字

2010-10-08 14:45:43

mysql中int

2013-03-01 09:59:22

云计算厂商SDN

2021-03-15 09:00:00

开发JavaKotlin

2011-02-28 09:51:43

内省

2015-08-19 10:13:53

DaasVDI

2010-03-05 15:47:59

Python Stri

2019-03-05 13:21:24

QQ腾讯注销QQ帐号

2009-09-01 16:35:55

C#操作String数
点赞
收藏

51CTO技术栈公众号