in reply to Re: Revision control in relational databases
in thread Revision control in relational databases

With that approach you lose the ability to have multiple branches though, as you will only have one active version.

Unless you store fulltext for BOTH the original and current version, with all intermediate versions being diffs up from the original. With a previous_version column you can have multiple branches (for example in case of simultaneous updates). To get an intermediate version, you start with the diff for that version, get all diffs from all previous_versions and then the base fulltext, and apply the diffs in order to the base fulltext.

The latest version has a diff, a previous_version AND fulltext of the post. When there is an update, the fulltext is stripped off. The new (current) version can be diffed against that fulltext first, list the formerly current version as previous_version and store its own fulltext.