I have a profile page (less than 10k users) and I need to track every change and update that is made through out the application, by the users. Whether a user updates the profile picture or adds an extra space in a “comments” field, I need to store the previous data.
In short: I need to store everything.
Is there some sort of “tracking-history-and-changes-in-sql-server” software or do I have to implement it myself?
If I have to implement it myself I can think of three ways to do it:
-
I keep everything in the same table
but I add a key column that
specifies which row is active
and which is old. -
I add a new table called history
where I store the column name that had the
change, when it was changed and what
the old data was. -
I add a history table for each table
in the database. It looks the same
but only keep track of each tables
history.
Has anyone had a similar problem and how did you solve it?
This was built using mvc 4 and it’s a
normal website.
EDIT
I’m mostly interested in existing solutions/software, but If there are none I would have to do it myself.
Has anyone used SQL Data Compare?
Where I worked last everything had to be logged fully. (working with goverment organisations). We never updated or deleted data.
What you would do is have a start date and an end date on each row. To do an update you would update the old data to have an enddate then insert a new row in the table. To do a delete you would put an enddate on the row with a null enddate. We also had an “updated by” column to put the userid