2013-05-22 49 views
2

一个简单的问题。我应该如何将电话号码和电子邮件地址存储在数据库中?只是纯文本(或数字),如[email protected]或者是用密钥进行编码(有点像密码保存在数据库中)。在这种情况下,除非您知道密钥,否则它变得不可读(并且更长)。数据库存储:纯文本还是编码?

唯一的原因是如果有人攻击数据库,并且假设他们有很多重要的电子邮件和数据库中的电话号码。

例如linkedIn和facebook如何保留所有这些数据?

+0

+1考虑到保持敏感数据的安全。 – Raptor

回答

0

电话号码是半唯一的ID。它们不是数字量或数量。它们可以是数字,并且在某些情况下可以是字母数字的,例如。 1-(800)-flowers。

将电话号码存储为文本,因为您不想添加,减去,乘或除它们。如果需要按国家或地区代码搜索,您可以将数字归一化为县代码,区号和号码。另一种方法是提供一种功能来访问电话号码文本字符串并导出县代码和区号。

另一个重要方面是为数字“(123)456-7890”存储格式代码(parens,空格符号或破折号)还是将这些代码去掉并仅存储数字。如果你想拥有半独特性或能够搜索平等,那么只需存储数字。有些数字是 像'* 82'这样的特殊代码是否也希望允许这些数字?

我要获得从电话号码的任何情报,那么你应该立足于基于北美编号计划https://en.wikipedia.org/wiki/North_American_Numbering_Plan文本字段数量的结构。

相关问题