2015-03-18 2 views
1

Я работаю над проектом, который ориентирован на метаинформацию о номерах телефонов.Надлежащее хранение миллионов телефонных номеров в Postgres

Используя postgres, мы будем посеять базу данных миллионами телефонных номеров, и я обеспокоен лучшим способом хранения этой информации.

Сейчас я рассматриваю таблицу phones с каждой строкой, представляющей номер телефона в виде строки. Тогда просто присоединиться от этого ... Что-то вроде ниже:

+-----------------------+    +-----------------------+ 
|  phone_numbers  |    |  phones   | 
+-----------------------+    +-----------------------+ 
| id: integer   +-------+  | id: integer   | 
| digits: string  |  |  |      | 
|      |  +-----+ phone_number: integer | 
|      |    |      | 
|      |    |      | 
|      |    |      | 
+-----------------------+    +-----------------------+ 

Как следует схема базы данных будет разработана с учетом хранения телефонных номеров?

+1

Один человек может иметь несколько телефонных номеров, и несколько человек может иметь тот же номер телефона: вам не хватает таблицы для отношений «многие ко многим» между людьми и телефоном. –

+0

Ребята благодарим вас за комментирование. Я обновил пример, чтобы сосредоточиться на отношении больше, чем на таблицах. Мне особенно интересно, как хранить номера телефонов, на которые можно легко ссылаться ... т. Е. Строки, цифры, разбитые на код области, префикс, суффикс и т. Д. Спасибо – SharkLaser

ответ

4

Единственный шаблон, который вы можете действительно следовать за международные телефонные номера, чтобы разбить их на три части:

  1. Международного прямые телефонного префикс (возможно, с соответствующей таблицей для поиска кода страны: http://en.wikipedia.org/wiki/List_of_country_calling_codes)
  2. номер телефона сам.
  3. Добавочный номер (s)

Хранится их как строки, для того, чтобы сохранить любые необходимые пробелы форматирования или ведущие нули, и подтвердить, что они следуют по утвержденной схеме.

Сделать выбор на том, чтобы сохранить национальный телефонный номер «0» префиксы или нет - лучше придерживаться E.123 представления чисел, где это возможно: http://en.wikipedia.org/wiki/E.123

Смежные вопросы