We're building a simple web based system whereby somebody adds a record, a CMS page for example, that gets approved by someone in charge before being shown on website.
If the author then decides to edit that page later, we want to create a draft based on the live copy, on approval it will replace the old live page.
We thought about doing complete version control but believe we can keep this simpler by just having 1. Just a draft, 2. Just a live, or 3. One draft and one live.
This functionality is required across multiple 'things' not just pages.
Finally the question: Do you think it would be better to store these two records in the same table, or would a mirror table be better?
I guess it probably depends but I don't like the ideal of having two tables with the same structure. Is the trade off for slightly slower operations (as we'll have to query out the drafts all the time when displaying the data) worth it?