Мне нужно хранить почтовые индексы в базе данных. Насколько велика колонка?

Я ожидаю, что столбец будет VARCHAR2 в моей базе данных Oracle.

US Zips: 9.

Канадский - 7.

Я думаю, что 32 символа были бы разумным верхним пределом

Что мне не хватает?

[EDIT] TIL: 12 - разумный ответ на вопрос Спасибо всем, кто внес вклад.

Ответ 1

Снимая страницы Wikipedia Postal Codes, должно быть более 32 символов. Я бы сказал, что даже 16 символов хороши.

Ответ 2

Как уже писал @neil-mcguigan, у википедии есть достойная страница по этой теме. На основании этого 12 символов должны сделать это: http://en.wikipedia.org/wiki/List_of_postal_codes

В статье в Википедии перечислены ~ 254 страны, что довольно хорошо относительно ВПС (Universal Postal Union) имеет 192 страны-члена.

Ответ 3

Почему бы вам объявить размер поля больше, чем фактические данные, которые вы ожидаете сохранить в нем?

Если исходная версия вашего приложения будет поддерживать адреса США и Канады (которые я вывел из того факта, что вы указали эти размеры в своем вопросе), я бы объявил это поле как VARCHAR2 (9) ( или VARCHAR2 (10), если вы собираетесь хранить дефис в ZIP + 4 полях). Даже глядя на сообщения, сделанные другими людьми в почтовых кодах по странам, VARCHAR2 (9) или VARCHAR2 (10) будет достаточным для большинства, если не всех других стран.

Вниз по строке вы всегда можете добавить ALTER столбец, чтобы увеличить длину, если возникнет такая необходимость. Но, как правило, трудно предотвратить кого-то, где-то от принятия решения о получении "креативных" и 50 других персонажей в поле VARCHAR2 (50) по той или иной причине (т.е. Потому, что они хотят другую линию на транспортной метке). Вы также должны иметь дело с проверкой граничных случаев (будет ли каждое приложение, которое отображает ZIP-дескриптор 50 символов?). И с тем фактом, что, когда клиенты извлекают данные из базы данных, они обычно выделяют память на основе максимального размера данных, которые будут извлечены, а не фактической длины данной строки. Вероятно, это не так уж и важно в этом конкретном случае, но 40 байт на строку могут быть приличным количеством RAM для некоторых ситуаций.

Как и в стороне, вы можете также рассмотреть возможность хранения (по крайней мере для адресов США) почтового индекса и расширения +4 отдельно. В целом полезно иметь возможность генерировать отчеты по географическому региону, и вы можете часто захотеть поместить все в почтовый индекс вместе, а не разбить его на +4. В этот момент полезно не пытаться SUBSTR вывести первые 5 символов для почтового индекса.

Ответ 4

То, что вам не хватает, является причиной того, что вам нужен почтовый код, который нужно обрабатывать специально.

Если вам действительно не нужно РАБОТА с почтовым кодом, я бы предложил не беспокоиться об этом. По работе я имею в виду специальную обработку, а не просто для печати ярлыков адресов и т.д.

Просто создайте три или четыре поля адреса VARCHAR2 (50) [например] и дайте пользователю ввести то, что они хотят.

Вам действительно нужно группировать ваши заказы или транзакции по почтовому индексу? Я думаю, что нет, поскольку в разных странах существуют разные схемы для этой области.

Ответ 5

Нормализация? Почтовые коды могут использоваться более одного раза и могут быть связаны с названиями улиц или названиями городов. Отдельная таблица (ы).

Ответ 6

Канадские почтовые коды всего 6 символов, в виде букв и цифр (LNLNLN)

Ответ 7

Если вы хотите интегрировать почтовые коды в базу данных, лучше всего использовать базу данных geonames. Хотя это трудно использовать и понимать, но это самая большая географическая база данных, доступная для пользователей, подобных нам.

Все остальные такие базы данных имеют более или менее вероятные одинаковые данные и структуру. Они просто удаляют дополнительную/избыточную информацию из базы данных. Если вы просто делаете это для систем с низкой нагрузкой, используйте их бесплатные сервисы, лимиты привлекательны и обеспечивают более удобный интерфейс с использованием json и ajax. Вы можете просмотреть ограничения здесь

Для вашей информации varchar (20) достаточно для хранения почтовых кодов

Ответ 8

В Великобритании опубликованы стандарты: Каталог стандартов данных правительства Великобритании

Max 35 characters per line 

Международный почтовый адрес:

Minimum of 2 lines and maximum of 5 lines for the postal delivery point 
details, plus 1 line for country and 1 line for postcode/zip code 

Длина почтового индекса в Великобритании:

Minimum 6 and Maximum 8 characters