Тип данных Mysql для почтовых индексов США (почтовые индексы)

StackOverflow https://stackoverflow.com/questions/1493926

Вопрос

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

  • 5-значный почтовый индекс США
  • широта
  • долгота
  • Классификационный код USPS
  • код штата
  • город

Почтовый индекс является первичным ключом, поскольку это то, что я буду запрашивать.я начал использовать средний int 5, но он усекает почтовые индексы, в которых есть ведущие нули.

Я подумывал об использовании char5, но меня беспокоит снижение производительности индексации по переменной char.

Итак, мой вопрос: какой тип данных MySQL лучше всего подходит для хранения почтовых индексов?

Примечание:я видел это в нескольких других вопросах, связанных с почтовыми индексами.Меня интересуют только пятизначные почтовые индексы США.Поэтому нет необходимости принимать во внимание форматы почтовых индексов других стран.

Это было полезно?

Решение

char(5) - правильный путь.Индексирование строк происходит довольно быстро, особенно если это такой небольшой набор данных.

Вы правы в том, что никогда не следует использовать целое число для почтового индекса, поскольку это не совсем числовые данные.

Изменить, чтобы добавить:Ознакомьтесь с этим, чтобы найти веские причины, почему вы не используете числа для нечисловых данных:Хорошая ли идея использовать целочисленный столбец для хранения почтовых индексов США в базе данных?

Другие советы

используйте средний INT(5) ZEROFILL, он должен добавить ведущие нули.Нет необходимости влиять на индекс и производительность из-за проблем с форматированием.

Если он сделает это Char(6), то он сможет обрабатывать и канадские почтовые индексы.

Если учесть, что существует максимум 100 000 5-значных почтовых индексов и как мало места он займет, даже если вы сделаете всю таблицу резидентной в памяти, нет причин не делать этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top