【问题标题】:Database storing: pure or encoded?数据库存储:纯的还是编码的?
【发布时间】:2013-05-17 09:52:52
【问题描述】:

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

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

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

【问题讨论】:

  • +1 考虑保护敏感数据的安全。

标签: database storing-data storing-information


【解决方案1】:

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

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

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

如果您希望从电话号码中获取任何情报,那么您应该根据北美编号计划 https://en.wikipedia.org/wiki/North_American_Numbering_Plan 的文本字段来构建号码结构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多