I am working on creating an application with an Oracle database as data backend.
The idea is to store two version of a row in the table: one is edited and the second one is before image of the row. When the edited row is approved, the before image is replaced with the edited row, else the edited row is deleted.
To do so, I added change_id into all the primary, foreign keys. The change_id addition is done on the application side. I would like to know if this is the right approach or should I follow some other approach?