Могут ли номера кредитных карт содержать начальные нули?

Часто я храню номера кредитных карт в varchar(16), Это работает, но это занимает 17 байтов на число.

Хранение не так уж и важно, но мне нравится быть эффективным, как по требованию к памяти, так и по времени поиска в таблице.

Если бы я мог использовать decimal(16) unsignedЯ мог бы сократить требования к хранилищу до 7 или 8 байтов, и при этом сохранить читабельность, а также большую часть совместимости.

Это лишило бы ведущих нулей. Могу ли я зависеть от всех номеров кредитных карт, начиная с ненулевого номера?

4 ответа

Решение

Согласно Википедии, первая цифра действительно может быть 0:

Первая цифра номера кредитной карты - это основной отраслевой идентификатор (MII), который представляет категорию организации, выпустившей кредитную карту. Различные цифры MII представляют следующие категории эмитентов:

  • 0 - ISO/TC 68 и другие будущие отраслевые назначения
  • и т.п.

Так что нет, я не думаю, что вы захотите использовать хранилище, в котором пропущены начальные нули.

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

Только кредитные карты ISO/TC 68 начинаются с лидирующих нулей (см. Также запись в Википедии для ISO / IEC 7812). Так что кажется, что они были бы очень редкими, но, возможно, существующими

Они могут. Первый номер кредитной карты - это "Основной отраслевой идентификатор", который указывает, какой тип организации выпустил карту. Используются все десять цифр, включая ноль. Первые шесть цифр в целом образуют идентификатор эмитента, и я не верю, что они ограничивают 0, так как обнаружение начинается с 6011.

Нумерация кредитных карт

Другие вопросы по тегам