在SQL数据库中存储电话号码

时间:2011-01-31 06:30:01

标签: mysql phone-number table-structure

我有一个存储手机号码的表

它存储
国家
网络
其余的

所以移动或屏蔽的示例是

64 21 8229918  
CC NN XXXXXXX 

现在,

国家有意义被称为国家 网络称为网络

但是你会把剩下的东西称为什么?

我正在重新设计数据库,所以我希望它尽可能准确地命名。 我可以在驼峰的情况下使用多个单词。

有什么想法吗?

国家/地区代码只有数字,我最多相信4个? 我应该使用int类型吗? 同样适用于网络。

其余的呢?

我不知道它能持续多久......

1 个答案:

答案 0 :(得分:2)

我会尽量保持简单。仅分隔国家/地区代码和数字,并将它们存储为文本。由于不同国家/地区使用different numbering schemes,因此无法确定每个国家/地区的“网络”(或者甚至可能意味着什么)。

出于这个原因,最好只将国家/地区代码存储在一个字段中,电话号码存储在另一个字段中,两者都作为文本存储,没有格式或空格。您还可能希望为“扩展名”分配另一个字段,但我不确定扩展名的使用或表示法如何因国家/地区而异。您不能只使用整数,因为国家/地区代码和某些国家/地区的电话号码可以从0开始。

基于维基百科,最长的country code是三个字符。所以你只需要三位数。我个人会为数字本身分配大约16个字符,以确保完全涵盖每个编号方案。