One option would be to create an additional history table such as emp_history and then have a trigger that inserts the old record every time an update is made, you will need to make sure you store the main table primary key as a non unique column in the history table. This would save all changes but would mean querying both tables when all changes were required.
Hope this helps
That would be a reasonable approach as any DML would add the record to the history table. The query of the history would be fairly efficient in that I'd only display changes in the last 7 days. The data could be indexed as you say by (original_primary_key, date_created).
Thanks, to bad the total recall option was not available in XE.