Тип данных Mysql для почтовых индексов США (почтовые индексы)
-
18-09-2019 - |
Вопрос
Я пишу веб-приложение, специфичное для США, поэтому формат, который используют другие страны для почтовых индексов, не важен.У меня есть список почтовых индексов США, который я пытаюсь загрузить в таблицу базы данных, включающую
- 5-значный почтовый индекс США
- широта
- долгота
- Классификационный код USPS
- код штата
- город
Почтовый индекс является первичным ключом, поскольку это то, что я буду запрашивать.я начал использовать средний int 5, но он усекает почтовые индексы, в которых есть ведущие нули.
Я подумывал об использовании char5, но меня беспокоит снижение производительности индексации по переменной char.
Итак, мой вопрос: какой тип данных MySQL лучше всего подходит для хранения почтовых индексов?
Примечание:я видел это в нескольких других вопросах, связанных с почтовыми индексами.Меня интересуют только пятизначные почтовые индексы США.Поэтому нет необходимости принимать во внимание форматы почтовых индексов других стран.
Решение
char(5) - правильный путь.Индексирование строк происходит довольно быстро, особенно если это такой небольшой набор данных.
Вы правы в том, что никогда не следует использовать целое число для почтового индекса, поскольку это не совсем числовые данные.
Изменить, чтобы добавить:Ознакомьтесь с этим, чтобы найти веские причины, почему вы не используете числа для нечисловых данных:Хорошая ли идея использовать целочисленный столбец для хранения почтовых индексов США в базе данных?
Другие советы
используйте средний INT(5) ZEROFILL, он должен добавить ведущие нули.Нет необходимости влиять на индекс и производительность из-за проблем с форматированием.
Если он сделает это Char(6), то он сможет обрабатывать и канадские почтовые индексы.
Если учесть, что существует максимум 100 000 5-значных почтовых индексов и как мало места он займет, даже если вы сделаете всю таблицу резидентной в памяти, нет причин не делать этого.