> Maybe there are better patterns out there to make this cleaner
SQL:2011 temporal tables are worth a look.