我正在从事一个专注于电话号码元信息的项目。
使用 postgres,我们将使用数百万个电话号码作为数据库的种子,我很关心存储此信息的最佳方式。
现在我一直在考虑一个 phones
表,其中每一行都将电话号码表示为一个字符串。然后简单地加入......就像下面这样:
+-----------------------+ +-----------------------+
| phone_numbers | | phones |
+-----------------------+ +-----------------------+
| id: integer +-------+ | id: integer |
| digits: string | | | |
| | +-----+ phone_number: integer |
| | | |
| | | |
| | | |
+-----------------------+ +-----------------------+
关于电话号码的存储,应该如何设计数据库架构?
最佳答案
对于国际电话号码,您真正可以遵循的唯一模式是将它们分成三个部分:
- 国际直拨前缀(可能与关联表查找国家代码:http://en.wikipedia.org/wiki/List_of_country_calling_codes)
- 电话号码本身。
- 分机号码
将它们存储为字符串以保留任何所需的格式空格或前导零,并验证它们是否遵循批准的模式。
选择是否存储国内电话号码“0”前缀——最好尽可能坚持 E.123 号码表示:http://en.wikipedia.org/wiki/E.123
关于sql - 在 Postgres 中正确存储数百万个电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29115697/