I perform a similar action by using effective_datetimes on the table. If the user adds a record, no problem. If a user edits a record, I add a record instead with a effective_datetime = DATETIME(). The original table becomes the AUDIT TRAIL. I use this in tables like ADDRESSES and NAMES. This way I know when Sally Jones became Sally Smith and the fact that she moved to Nunavit, Canada.