В каком формате в бд хранить номер лицевого счёта?

Номер лицевого счёта содержит 20 цифр. Какой тип указать для столбца в mysql, где будут храниться номера лицевого счёта? Использую миграцию в laravel.

$table->integer('personal_account')

или

$table->bigInteger('personal_account')

или лучше в строке хранить?


Ответы (1 шт):

Автор решения: eri

В строке потому, что:

  • нет арифметических операций
  • от платежных систем он приходит строкой, штрихкоды тоже из строки формируются
  • строка не округлится 1.811235+e10
  • контрольные числа и хэши считаются на строке
  • decimal всеравно хранит в строке
  • сортировка не важна

В целых числах разбив на префикс и номер договора:

  • Если индекс таблицы не помещается в память
→ Ссылка