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