С технической точки зрения некоторые вопросы, поднятые здесь, довольно тривиальны. Я работаю с очисткой адресных данных ежедневно , в частности, с очисткой адресных данных со всего мира. Это не тривиальная задача для любой части воображения. Когда дело доходит до почтовых индексов, вы могли бы хранить их как целые числа, хотя это может быть "семантически" правильным. Дело в том, что данные имеют числовую форму, независимо от того, строго ли они считаются числовыми по значению.
Однако реальный недостаток хранения их в виде числовых типов состоит в том, что вы потеряете возможность легко видеть, были ли введены данные неправильно (то есть имеют пропущенные значения) или система удалила лидирующие нули, что привело к дорогостоящим операциям для проверить потенциально недействительные почтовые индексы, которые в противном случае были правильными.
Также очень сложно заставить пользователя вводить правильные данные, если одним из последствий является задержка бизнеса. У пользователей часто не хватает терпения для ввода правильных данных, если это не сразу очевидно. Использование регулярных выражений является одним из способов обеспечения правильности данных, однако, если пользователь вводит значение, которое не соответствует, и у него отображается ошибка, он может просто вообще пропустить это значение или ввести что-то, что соответствует, но в противном случае является неправильным. Один из примеров [с использованием канадских почтовых индексов] заключается в том, что вы часто видите введенный A0A 0A0, который недопустим, но соответствует регулярному выражению для канадских почтовых индексов. Чаще всего это вводится пользователями, которые вынуждены вводить почтовый индекс, но они либо не знают, что это такое, либо не все правильно.
Одно из предложений заключается в проверке всей записи как единицы, подтверждающей правильность почтового индекса по сравнению с остальной частью адреса. Если это неверно, то предложение альтернативных действительных почтовых индексов для адреса облегчит для них ввод правильных данных. Аналогичным образом, если почтовый индекс является правильным для адреса улицы, но номер улицы выходит за пределы домена этого почтового индекса, предложите альтернативные номера улиц для этой комбинации почтовый индекс / улица.