There are always other ways. Software design is all about balancing dozens of variables to find a solution that meets all your criteria. "Best" is a subjective
word, as what you think is best is not the same as what I think is best.
How many records are you talking about? How much data is stored for each card? What are the customer requirements for response time? Will there be new data added often? Will existing data be changed often? What's your budget? What hardware do you have? Can you host a DB somewhere?
There are probably thousand more questions you need to think about before you settle on one specific design and implementation.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors