I'm designing the data model of a payment database. One of the domain requirement is to keep track of how the customer paid and, if applicable, what was used i.e.: Visa, Amex, etc.

In the past I have used PaymentMethod to describe Cash, Credit Card, or Check. But I'd like to use the most appropriate name for the corresponding objects, in order to avoid confusion that could lead to bugs. Searching around the web I've learned that a more proper term to use would be TenderType.

However, I'm having trouble finding out how to describe what type of credit card was used (i.e. to describe Visa, MasterCard, AMEX, etc. when the TenderType is Credit Card, Debit Card, or Gift Card).

Sure, I can make something up and just use an additional field like CreditCardType, but I'd like to know what others are using, if there are any objective arguments that could guide the naming choice, and if there would be any best practice on how to structure such data (e.g. foreign key to another table ?).

  • CreditCardType. – Robert Harvey Nov 2 '17 at 21:10
  • Who are you making the database for? Ask them what they name these things – HorusKol Nov 2 '17 at 21:26
  • @HorusKol for myself =) – RoLYroLLs Nov 2 '17 at 21:27
  • 1
    Ask yourself. ... – Robert Harvey Nov 2 '17 at 21:28
  • 1
    Then call it PaymentMethodSubtype, or simply add DebitCard to your list of payment methods. – Robert Harvey Nov 2 '17 at 21:37

This is not an opinion based question, as there are clear objective arguments to guide the choice

Payment method ?

PaymentMethod is simple, accurate, and understood by anybody. I've seen it in many systems (or some abbreviation of it).

You could indeed ask yourself if you want to have credit card products such as Amex or Visa to be PaymentMetod on their own, or an additional attribute to a more general method such as CreditCard. This depends on how far you need to go in the details about payment processing.

PaymentType could also suit the needs. However, it could bear some more ambiguity : this term could also mean complete payment vs. partial payment, or direct payment vs. payment on behalf.

Tender type ?

TenderType seems too ambiguous, because tender mostly refers to some kind of bids/offers (e.g. request for tender, call for tender, etc..). You'll find out by looking for "tender" in online dictionaries like Oxford, Cambridge or Merriam-Webster.

LegalTender could be less ambiguous, and would indeed refer to a payment method. However, this legal term has a very precise legal meaning:

Wikipedia: Legal tender is a medium of payment recognized by a legal system to be valid for meeting a financial obligation. Paper currency and coins are common forms of legal tender in many countries. Legal tender is variously defined in different jurisdictions. Formally, it is anything which when offered in payment extinguishes the debt. Thus, personal cheques, credit cards, and similar non-cash methods of payment are not usually legal tender.

This has several consequences:

  • its definition depends on the country of the transaction
  • in some countries, credit cards are not considered as legal tender, because nobody can be forced to accept them as payment means.

So this term appears to specific for your purpose, and I would advise against it.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.