Arris
@Arris
Сапиенсы учатся, играя.

Как правильно хранить ИНН в бд MySQL?

Возникла необходимость хранить в БД ИНН (несущественно, физлица или юрлица) и очень часто искать по нему.

Как известно, это последовательность из 10 (или 12) арабских цифр, возможно с ведущим нулём.

Вдумчиво погуглил. Подавляющее большинство источников рекомендует хранить это как varchar(12), использовать индекс и не заморачиваться. Иногда советуют использовать char(12) charset latin1. Но это всё равно строка, а искать по строкам я не люблю.

Я нашел решение, которое мне кажется идеальным:
`inn` decimal(10,0) ZEROFILL DEFAULT NULL
(decimal(12,0) соотв для физического лица )

Какие подводные камни я не заметил?
Спасибо.
  • Вопрос задан
  • 5137 просмотров
Решения вопроса 1
возможно с ведущим нулём

Но это всё равно строка

вы сами ответили на свой вопрос.

char(12) charset latin1

Да, это хороший совет. Абсолютно бессмысленно и глупо использовать varchar для строк постоянной длины.

а искать по строкам я не люблю

А если перейти от личных предпочтений к реальным измерениям - действительно ли будут проблемы?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы