数据库存储:纯或编码?

时间:2013-05-22 11:08:07

标签: database storing-data storing-information

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

另一个重要方面是您为数字'(123)456-7890'存储格式代码(parens,空格符号或短划线),还是将它们剥离并仅存储数字。如果您想要具有半唯一性或能够搜索相等性,那么只需存储数字即可。有些数字是 像'* 82'这样的特殊代码也希望允许这些作为数字吗?

我希望从电话号码中获取任何情报,然后您应根据北美编号计划https://en.wikipedia.org/wiki/North_American_Numbering_Plan在文本字段中建立数字结构。