Is it possible (or good practice) to register data upon Deletion of a record? What would be a better solution?
A common practice is to have a status column that indicates whether or not the representative is active. Deleting data that you may wish to analyze in the future isn't a good idea. Instead, you could do something like this:

representativeID      status     statusDate
-------------------------------------------
1                     inactive   2014-03-20
2                     inactive   2014-04-02
3                     active     2014-04-10


The statusDate column could be updated by a trigger. It would give you the date of the last status change. In order to look at past representatives, you would simply write a query that filtered the records by inactive statuses. 

/** MySQL example - 10 most recent inactive represenatives **/
select representativeID
from representatives
where status = 'inactive'
order by statusDate desc
limit 0,10