I have read this two questions:
Is there a MySQL option/feature to track history of changes to records?
How to version control a record in a database
I understood how the version system should work but I have a a particular question for my situation.
For example I have this table:
Let us say that this table has around 4000 records in it. I will display to the user 100 records once based on a preset configuration, for example display all record where record A value is foo.
The user now has the possibility to change any of the 100 records, for example let us say that he changes 4 records and he leaves the other 96 records untouched.
My question is:
If the user changes only 4 record from the preset configuration what is the best way to keep track of the changes and beside that the track of configurations (the way that the 100 record looked like in a particular date before changing).
I can add a start_date and end_date fields to keep track of the configurations in another table but it doesn't feel right to have a table and fill it with 100 record from which only 4 record changed just to be able to know how the configuration looked at a certain date and what record changed according to the version from that date. At the end I will end up with hundreds of duplicated content that has only the date field different. What is the ideal solution for this situation?
Later Edit:
The main idea is to obtain something like this:
I want to be able to see each configuration version (version 1, 2, 3, 4) from the specific creation date. Each configuration is containing old rows (from previous configuration version) + the rows modified by the user in the new version.