信用卡号码可以包含前导零吗?

Bry*_*eld 5 database-design credit-card

我经常存储信用卡号码varchar(16).这是有效的,但每个数字需要17个字节.

存储并不是什么大不了的事,但我喜欢高效,无论是存储需求还是表搜索时间.

如果我可以使用decimal(16) unsigned,我可以将存储需求减少到7或8个字节,并且仍然保持可读性以及大部分兼容性.

这将剥离前导零.我可以依赖所有以非零数字开头的信用卡号码吗?

HLG*_*GEM 11

信用卡号码(如电话号码和邮政编码)不是数字,不应存储在数字数据类型中.它们本质上是字符串数据.不打算在数学计算中使用的数字(除了用作id的自动分配的整数除外)是字符串数据,它们将用作字符串数据,它们将被查询为字符串数据.


Tim*_*nes 6

根据维基百科,第一个数字确实可以是0:

信用卡号码的第一位是主要行业标识符(MII),它代表发行信用卡的实体类别.不同的MII数字代表以下发行人类别:

  • 0 - ISO/TC 68和其他未来的行业任务
  • 等等

所以不,我认为你不想使用省略前导零的存储.