Gride
Новичок
Всем привет,
Подскажите пожалуйста, какой тип данных лучше всего использовать для хранения идентификационных кодов юридических лиц?
У нас в незалежной рохляндии юридическим лицам присваиваются 8-разрядные коды (так называемые коды ЕГРПОУ). Новым предприятиям уже сейчас присваиваются коды начиная с 38 миллионов. При этом, продолжают существовать предприятия, у которых коды менее 10 миллионов (в основном - госорганы, госпредприятия и жутко древние кооперативы и колхозы). Таких предприятий все-еще много, и даже уже закрытые предприятия должны будут попадать в базу, "искаться" и "находиться". В официальных базах и документах их коды до 8 разрядов слева дополняют нулями.
Использование кодов планируется только как условие для выборок, возможно, сортировок. Никаких арифметических операций по этим кодам, соответственно, не будет.
Запросов INSERT И UPDATE планируется совсем немного, до сотни в день, основные запросы - это SELECT (выбрать предприятия с кодами, полученными от клиента, у которых в связанные таблицы добавились новые события с даты последнего запроса). Коды, по которым будут осуществляться выборки, будут приходить от клиента в XML-е уже дополненные нулями до 8 разрядов.
Навскидку, наиболее простым видится хранение в CHAR(8), а наиболее правильным - в INT(8) UNSIGNED ZEROFILL. Что-нибудь типа:
Кто как хранит подобные коды и какие проблемы возникают/могут возникнуть?
Подскажите пожалуйста, какой тип данных лучше всего использовать для хранения идентификационных кодов юридических лиц?
У нас в незалежной рохляндии юридическим лицам присваиваются 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 'Таблица юридических лиц')