在我工作的最后3家公司中,电话号码列的类型为varchar(n).原因是他们可能想要存储扩展(分机333).但在每种情况下,插入和更新时都会删除" - "字符.我不明白为什么".ext"字符可以存储而不是" - "字符.有没有其他人看过这个,你能用这种方式做什么解释?如果你要存储的只是数字,那么你最好不要使用int字段吗?相反,如果您想将数字存储为字符串/ varchar,那么为什么不保留所有字符而不打扰显示格式和写入时清除?
我也有兴趣了解其他地方实施电话号码存储的其他方式.
快速测试:您要添加/减去/乘/分电话号码吗?不.与SSN类似,电话号码是可以包含实际数字的离散数据,因此字符串类型可能是最合适的.
存储电话号码的一点是领先0.
例如:01202 8765432
在int列中,0将被剥离,这使得电话号码无效.
我会冒险猜测 - 交换空间是因为它们实际上并不意味着什么
例如:123-456-789 = 123 456 789 = 123456789