Multiplication tables are such a miniscule amount of stuff to memorize compare to, say, your vocabulary. Just memorize it. It's nothing. And it's much more efficient to remember these basic facts so they are instantly available instead of having to recalculate them each time. Recalculating 7X8 each time, is like recalculating how to spell "the" each time you need it.

Of course there are patterns. To get the times tables from 0 to 9 (or any range) just start with the times tables from 0 to 1, i.e.
X|01
0|00
0|01
and then just extend it by noting that every row and column is an arithmetic progression, (and then just remember the whole thing).

My son figured out all the products using repeated addition, so then he knew the times table, before knowing what one was.

So there are patterns, and you should initally calculate it all, and make sense of it, but ultimately get it crystalized in memory for instant recall.