How to Keep Audit Data and Effectively Query Large Tables
Add a column "current" to your existing table make it true or false.  If current it is true.


Additionally


Consider adding a second date column "End effective", when John Smith has multiple old records, you are going to want to know the date span each was correct for.