возможно, вы можете создать таблицу с полями contractID, clientID, cStartDate, cEndDate, notes, status
Таким образом, вы можете просто вставить новую информацию о контракте в таблицу и обновить поле статуса, чтобытекущий, активный контракт имеет уникальный статус, например, 0 -> архивированный, 1 -> активный и т. д.
Или, если вы предпочитаете, чтобы исторические данные вам не нужны, вы можете опустить статусполе и просто обновите дату начала и окончания, используя clientID и contractID (если у клиента несколько контрактов)