Мой собственный опыт связан с Oracle, у которого нет типа данных YEAR, но я всегда старался избегать использования числовых типов данных для элементов только потому, что они состоят только из цифр. (Таким образом, это включает номера телефонов, номера социального страхования, почтовые индексы, а также дополнительные примеры).
Мое эмпирическое правило - учитывать, для чего используются данные. Если вы будете выполнять математические операции с ним, сохраните его как число. Если вы будете выполнять строковые функции (например, «Взять последние четыре символа SSN» или «Показать номер телефона как (XXX) XXX-XXXX»), то это строка.
Дополнительной подсказкой является требование хранить начальные нули как часть числа.
Кроме того, несмотря на то, что их часто называют «номером телефона», они часто содержат буквы, указывающие на наличие добавочного номера в качестве суффикса. Точно так же стандартный номер книги может заканчиваться на «X» как «контрольная цифра», а международный стандартный серийный номер может заканчиваться на «X» (несмотря на то, что Международный центр ISSN неоднократно называет его 8-значным кодом http://www.issn.org/understanding-the-issn/what-is-an-issn/).
Форматирование телефонных номеров в международном контексте является сложным или естественным, и в соответствии с E.164 требуется, чтобы в кодах вызова страны использовался префикс «+».