Ответ 1
Хорошо, учитывая, что нет разницы в служебных данных между varchar (30) и varchar (100), если вы только сохраняете по 20 символов в каждом, ошибайтесь на стороне осторожности и просто делайте 50.
Какой самый длинный по всему миру номер телефона, который я должен рассмотреть в SQL varchar(length)
для телефона.
соображения:
Учтите, что в моем конкретном случае я не нуждаюсь в карточках и т.д. номер начинается с кода страны и заканчивается расширением, комментариями Факс/Телефон и т.д., а также необходимости использования необходимых карточек.
Хорошо, учитывая, что нет разницы в служебных данных между varchar (30) и varchar (100), если вы только сохраняете по 20 символов в каждом, ошибайтесь на стороне осторожности и просто делайте 50.
Предполагая, что вы не храните такие вещи, как "+", "()", "-", "пробелы" и "что у вас есть" (и почему бы вам, они представляют собой озабоченности, которые могут варьироваться в зависимости от локальных обычаев и сетевые распределения в любом случае), рекомендация МСЭ-Т E.164 для международной телефонной сети (к которой подключены большинство национальных сетей) указывает, что целое число (включая код страны, но не включая префиксы, такие как международный телефонный префикс, необходимый для набора номера, который варьируется от страны к стране, суффиксы, такие как внутренние номера УАТС) не более 15 символов.
Префиксы вызовов зависят от вызывающего, а не от вызываемого абонента, и, следовательно, не должны (во многих случаях) храниться с номером телефона. Если база данных хранит данные для личной адресной книги (в этом случае имеет смысл хранить префикс международного вызова), самые длинные международные префиксы, с которыми вам придется иметь дело (согласно Википедии) в настоящее время составляют 5 цифр, в Финляндии.
Как и для суффиксов, некоторые УАТС поддерживают до 11-значных расширений (опять же, согласно Wikipedia). Поскольку внутренние номера УАТС являются частью другого плана набора номера (УАТС отделены от телефонных компаний), номера внутренних номеров необходимо отличать от телефонных номеров либо с разделительным символом, либо путем хранения их в другом столбце.
В спецификации GSM 3GPP TS 11.11 в MSISDN EF (6F40) имеется 10 байтов для "номера набора". Поскольку это GSM-номер номера телефона, и его использование заменяется на nibble (и всегда есть возможность круглых скобок), 22 символа данных должны быть достаточно.
По моему опыту, есть только один экземпляр круглых скобок открытия/закрытия, вот почему я рассуждал выше.
Немного хуже, я использую телефонную карточку для международных звонков, поэтому ее локальный номер в US + account # (6 цифр) + pin (4 цифры) + "пауза" + то, что вы описали выше.
Я подозреваю, что могут быть и другие случаи