一个简单的问题。我应该如何在数据库中存储电话号码和电子邮件地址?只是像 email@email.com 这样的纯文本(或数字),还是用密钥对其进行编码更好(有点像密码在数据库中的保存方式)。在这种情况下,除非您知道密钥,否则它将变得不可读(并且更长)。
唯一的原因是如果有人入侵了数据库,假设它们是数据库中许多重要的电子邮件和电话号码。
例如,linkedIn 和 facebook 如何保存所有这些数据?
一个简单的问题。我应该如何在数据库中存储电话号码和电子邮件地址?只是像 email@email.com 这样的纯文本(或数字),还是用密钥对其进行编码更好(有点像密码在数据库中的保存方式)。在这种情况下,除非您知道密钥,否则它将变得不可读(并且更长)。
唯一的原因是如果有人入侵了数据库,假设它们是数据库中许多重要的电子邮件和电话号码。
例如,linkedIn 和 facebook 如何保存所有这些数据?
电话号码是半唯一的 ID。它们不是数字量或计数。它们可以是数字,在某些情况下可以是字母数字,例如。1-(800)-花。
将电话号码存储为文本,因为您不想对它们进行加、减、乘或除。如果需要按国家或地区代码搜索,您可以将数字标准化为县代码,以及地区代码和数字。另一种方法是提供访问电话号码文本字符串并导出县代码和地区代码的功能。
另一个重要方面是存储数字“(123) 456-7890”的格式代码(括号、空格符号或破折号),还是将它们剥离并仅存储数字。如果您想具有半唯一性或能够搜索相等性,则只需存储数字即可。有些数字是特殊代码,例如 '*82' 是否也希望允许这些数字?
如果您希望从电话号码中获取任何情报,那么您应该基于北美编号计划 https://en.wikipedia.org/wiki/North_American_Numbering_Plan的文本字段来构建号码结构。