Когда автоматическая телефонная система использует поле для совершения телефонного звонка, она не может сказать, какие символы она должна использовать и какие должна игнорировать при наборе номера. Человек может видеть символ «(» или «)» или «-» и знать, что они считаются разделителями, разделяющими код города, npa и nxx телефонного номера. Помните, однако, что каждый символ представляет двоичный шаблон, который, если он не запрограммирован на игнорирование, будет введен автоматическим набором номера. Чтобы учесть это, лучше хранить эквивалент только тех символов, которые пользователь нажал бы на телефонной трубке, и еще лучше, чтобы отдельные значения были сохранены в отдельных столбцах, чтобы номеронабиратель мог использовать отдельные поля, не анализируя строку.
Даже если вы не используете автоматизацию набора номера, рекомендуется хранить вещи, которые вам не нужно обновлять в будущем. Гораздо проще добавлять символы между полями, чем удалять их из строк.
В комментарии об использовании типа данных строка против целого числа, как отмечалось выше, строки - это правильный способ хранения телефонных номеров на основе различий между странами. В этом есть важное предостережение, заключающееся в том, что при агрегировании статистики для составления отчетов (т. Е. СУММА о том, сколько номеров или вызовов) символьные строки НАМНОГО медленнее, чем числа. Для этого важно добавить целое число в качестве столбца идентификаторов, который можно использовать для подсчета вместо типа данных поля varchar или char.