是否有适用于所有号码的电话号码格式? (区域代码比3个数字更灵活,其余为7个数字)
答案 0 :(得分:10)
这被标记为数据建模..所以我将解决这个问题。
电话号码,无论国家/地区,都应始终存储为字符串而不进行格式化(eg. "9083429876"
)。
我看到人们试图将这些存储为带格式的字符串..这通常会导致灾难。在某个地方,有人会希望这些数字格式不同。然后你不仅要为它们写一个格式化函数,还要写一个非格式化函数。 Yowsa。
我也看到有人试图将这些存储为INT64(或BIGINT)。好吧,很好,但为什么呢?没有人在显示未格式化的电话号码..并且要格式化它你必须把它变成一个字符串。有些人试图争论它是为了分类目的,但也不会飞。对电话号码进行排序绝对不是一项有用的操作。根据区号过滤数字很有用 - 但是按数字排序顺序返回所有数字?永远没用。
我看到的第三个不好的人是将数字的每个组成部分存储在不同字段中的人。再次,不好。那一刻你开始在那里戳国际号码那些领域变得毫无意义..例如:你认为塞内加尔使用区号吗?
因此,作为一个离别的想法,我告诉你:由于每个国家都有自己的一组数字(符号真的) - 应该考虑如何将它们格式化以供展示。
答案 1 :(得分:5)
答案 2 :(得分:2)
答案 3 :(得分:0)
始终使用国家/地区代码存储该号码,以使其明确无误,并且可以在显示时为阅读器正确格式化。