If you want to compare multiple versions of a database schema, for example to get an overview of which table or view was created or dropped in which version, you need to compare each version with every other version, resulting in n*(n-1) or n*(n-1)/2 comparisons, depending on what your requirements are.
In my first steps toward multi-version comparison I created a list editor to assign all the project versions (schema versions) to be compared, and display the result in a matrix containing the number of differences.
This screenshot displays the comparison matrix of dbscript versions 0.91 through 0.98.
In case you wonder why the matrix is not symmetrical: CREATE and DROP have a different number of differences. Whereas a dropped table is a difference of 1, a created table usually also has a primary key, constraints, indexes, which add to the number of differences.
The goal of this new functionality is to also include a display similar to the two-version comparison result, but covering all versions.
It’s not very clear to me yet, so your ideas are welcome 😉
Pingback: Multi-Version Comparison – Timeline « devioblog
Pingback: Source Control Management and Databases « devioblog