数据库设计:存储信用卡信息

时间:2012-07-16 19:28:14

标签: sql database-design normalization

好的到目前为止我有一张存储收据信息的表格。

例如:

TABLE receipt
receipt_ID (int)(primary key)
creditcard (int) //Last 4 digits of credit card.
purhcaseAmount (int)
transactionTypeID (int)
remainingBalance (int)

creditCard列的限制为4位数,因为大多数收据只显示信用卡号码的最后4位数。

但是,有些银行显示前2位数字和最后2位数字,我想将此信息保留在数据库中。

您如何修改数据库设计以满足此业务要求?

3 个答案:

答案 0 :(得分:2)

您可能希望存储有关信用卡的多条信息,例如姓名,卡类型等。对于号码本身,为什么要聪明?只需将其设为varchar(19)并将其存储为12****************34或您选择的其他格式。

答案 1 :(得分:2)

我不会使用int,即使是最后4位数。根据经验,如果你存储的数字没有意义,如果它被加起来,将它存储为字符串。

答案 2 :(得分:0)

如果您的业务要求是存储4位数字,那么它们在字符串中的位置是否重要?这些信息将用于什么?

如果无关紧要,只需用正则表达式抓住数字,忽略不是数字的东西,然后将数字填入表格列。