相关疑难解决方法(0)

是否存在将标准化电话号码存储在数据库中的标准?

在数据库字段中存储电话号码的良好数据结构是什么?我正在寻找足够灵活的东西来处理国际号码,还有一些能够有效查询号码各个部分的东西.

编辑:只是为了澄清这里的用例:我目前将数字存储在一个varchar字段中,并在客户输入时将其保留.然后,当代码需要该数字时,我将其标准化.问题是,如果我想查询几百万行来查找匹配的电话号码,它涉及一个功能,如

where dbo.f_normalizenum(num1) = dbo.f_normalizenum(num2)
Run Code Online (Sandbox Code Playgroud)

这是非常低效的.当只是一个varchar字段时,寻找像区域代码之类的东西的查询变得非常棘手.

[编辑]

人们在这里提出了很多好建议,谢谢!作为一个更新,这里是我现在正在做的事情:我仍然在varchar字段中存储与输入完全相同的数字,但是在查询时没有规范化事物,我有一个触发器,可以在插入记录时完成所有工作或更新.所以我对我需要查询的任何部分都有内联或重要内容,并且这些字段被编入索引以使查询运行得更快.

database

90
推荐指数
7
解决办法
5万
查看次数

使用整数列将美国邮政编码存储在数据库中是一个好主意吗?

乍一看,我认为在数据库表中存储邮政编码有两个基本选择:

  1. 文本(可能是最常见的),即char(5)或varchar(9)支持+4扩展
  2. 数字,即32位整数

如果我们假设没有国际问题,两者都将满足数据的要求.在过去,我们通常只是走了文本路线,但我想知道是否有人做相反的事情?只是简单的比较看起来整数方法有两个明显的优点:

  • 通过它的性质,它仅仅自动限于数字(而没有验证,文本样式可以存储字母,据我所知,这些字母在邮政编码中无效).这并不意味着我们可以/将/应该放弃正常验证用户输入!
  • 它占用的空间更少,为4个字节(即使对于9位邮政编码也应该足够),而不是5或9个字节.

而且,它似乎不会对显示输出造成太大影响.打一个ToString()数值,使用简单的字符串操作来插入连字符或空格或其他任何+4扩展名都是微不足道的,并使用字符串格式来恢复前导零.

是否有什么可以阻止使用int仅限美国邮政编码的数据类型?

database database-design types postal-code street-address

51
推荐指数
6
解决办法
4万
查看次数

EXCEL公式,带有实际值的格式化值

我有一个带有邮政编码的excel文件,我需要获得前两个数字= LEFT(G2; 2);

对于像11008这样的邮政编码它可以工作,我得到11,但如果邮政编码的值为01008,则这不起作用,因为未格式化的(实际值)值为1008

有任何想法吗?

excel excel-formula

0
推荐指数
1
解决办法
155
查看次数