2015-06-16 4 views
0

Я разделил телефонный номер в 2-х частей:Сохранение телефонных номеров код страны

  • префикс страны (например, +49) номер
  • телефона без лидирующего 0

Мой вопрос в том, что лучший способ сохранить код страны Как это (+49) или Зарубежный ключ в таблицу стран?

ответ

0

Выбор зависит от:

  1. № или записи
  2. база данных используется
  3. No. отношений с другими таблицами

As, код страны будет повторяющимся столбцом, который может быть помещен в столбец типа varchar, например, например + 91-9654637268. Это позволит использовать различные форматы номера телефона, но не проверять на уровне базы данных, что введенное значение должно быть числом, которое вам нужно проверить на уровне кода. Использование varchar должно быть первым выбором для хранения телефона номера со своими кодами стран, так как это будет быстрее, избегая объединений.


Но если вам нужно хорошее количество манипуляций, используйте bigint, который будет хранить число, например. 9764536377443, где первые две цифры - код страны, а остальные цифры - номер телефона.


Или вы могли бы иметь отдельный столбец для кода страны, который бы добавить ненужный присоединиться, но может быть полезно, если код страны требуется в нескольких местах и ​​должны быть проверены и ограничены whihc также может быть достигнуто путем используя любой из вышеперечисленных методов.

Надеюсь, это полезно.

0

транзакционной базы данных

Если это транзакционной базы данных (много обновления), или база данных общего назначения (запрос и обновление), а затем использовать нормализацию базы данных, как говорит Джонатан. Так есть таблица Country со структурой

| ID | CountyCode | CountryName | 
| 1 | +49  | Germany  | 
| 2 | +1   | USA   | 

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

Затем таблица (и) для остальной части номера телефона (в зависимости от того, хотите ли вы разделить код зоны и т. Д.).) С колонкой, что ссылки в качестве внешнего ключа CountyCode ID

| ID | CountyCodeID | TelNumber | 
| 1 | 1   | 12345  | 

Однако иметь в виду, что это общий способ цель делать вещи, в запросе тяжелых ситуаций с большими объемами данных (DataMart, Datawarehouse), то другой подход лучше всего посмотреть Star Schemas

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