Mysql Какой тип данных лучше всего использовать для хранения идентификационных кодов

Gride

Новичок
Всем привет,

Подскажите пожалуйста, какой тип данных лучше всего использовать для хранения идентификационных кодов юридических лиц?
У нас в незалежной рохляндии юридическим лицам присваиваются 8-разрядные коды (так называемые коды ЕГРПОУ). Новым предприятиям уже сейчас присваиваются коды начиная с 38 миллионов. При этом, продолжают существовать предприятия, у которых коды менее 10 миллионов (в основном - госорганы, госпредприятия и жутко древние кооперативы и колхозы). Таких предприятий все-еще много, и даже уже закрытые предприятия должны будут попадать в базу, "искаться" и "находиться". В официальных базах и документах их коды до 8 разрядов слева дополняют нулями.

Использование кодов планируется только как условие для выборок, возможно, сортировок. Никаких арифметических операций по этим кодам, соответственно, не будет.
Запросов INSERT И UPDATE планируется совсем немного, до сотни в день, основные запросы - это SELECT (выбрать предприятия с кодами, полученными от клиента, у которых в связанные таблицы добавились новые события с даты последнего запроса). Коды, по которым будут осуществляться выборки, будут приходить от клиента в XML-е уже дополненные нулями до 8 разрядов.

Навскидку, наиболее простым видится хранение в CHAR(8), а наиболее правильным - в INT(8) UNSIGNED ZEROFILL. Что-нибудь типа:

PHP:
CREATE TABLE companies (id INT UNSIGNED AUTOINCREMENT PRIMARY KEY NOT NULL,
                        code INT(8) UNSIGNED ZEROFILL NOT NULL,
                        registered DATE NOT NULL,
                        INDEX code_index (code),
                        INDEX registered_index (registered),
                        COMMENT 'Таблица юридических лиц')
Кто как хранит подобные коды и какие проблемы возникают/могут возникнуть?
 

~WR~

Новичок
Mysql? Значит varchar.

Эти коды имеют свойство эволюционировать со временем.
Потом как пить дать добавят какую-нибудь серию с буквами и пробелами.

Хранение в числах - это экономия на спичках и большой риск попасть на лишний alter table в будущем.
 

Gride

Новичок
Согласен, от наших "оптимизаторов" можно чего угодно ожидать :)
Чувствую, дополнительно придется делать таблицу с инфой о физических лицах, а у них идентификационные коды десятиразрядные, хоть и без ведущих нулей.
 
Сверху