We have a system developed by our database administrators that works as a trigger for updating / deleting. There is a secondary table that almost reflects the table being checked (in addition to some other details, such as transaction time, login used to perform the update, server, etc.). At any time, when someone makes changes, he is registered in the audit version of the table using a trigger. This annoys the need to constantly update the audit trigger at any time when the scheme changes, but c'est la vie.
Itβs good that applications do not have to be associated with this audit at all ... therefore it saves the number of concepts for the application code low (er).
This works and works on tables where the number of transactions is tens of thousands per day. Of course, your mileage may vary depending on the amount of your server and the nature of your data, but it works for us :-)
source share