This is a problem I've faced a number of times, and am facing again. Basically, how do you keep a track of how items in your database are changing over time?<p>I'm familiar with the common patterns, principally:
1. Slowly changing dimensions - https://en.wikipedia.org/wiki/Slowly_changing_dimension
2. Change data capture patterns - https://en.wikipedia.org/wiki/Change_data_capture<p>One thing I fail to understand is how these patterns deal with changes to the underlying models they're tracking (e.g. a field schema change or entirely new field).<p>To give a bit more (simplified) colour - my current use-case is tracking how ratings and prices (both Ints) are changing over time in a way that is resilient to updating the ratings I care about and the format of the prices & ratings. However, you could imagine the same issues arising for logging transactions against the data etc...