I'm looking at building basic CMS functionality into our web product and am researching tips and design ideas for versioning content. I'm specifically looking for database schemas in use today.
What are you using for content versioning? What patterns apply if you have different types of content that need versions stored? How is question versioning handled on Stack Overflow?
Thanks
Content versioning is a powerful feature of the disguise software that allows you to easily version and subsequently replace media files based on their file name.
Versioning saves a copy of the current page so that an author can view, and revert back to it in the future.
Perhaps most usefully, versioning also enables you to track changes, so you can audit and monitor modifications to content items. Some WCM packages have done this in ways that mimic what you see in sophisticated word processing tools, via color coding and mouse-over bubbles that show who made what changes and when.
Version management is a method of tracking changes to a file or set of files over time. Because each archived version is stored with a time stamp and a user ID, it is always possible to revert to a previous version at a later date. Version control is used in software development to keep track of source code.
Literature uses a 5 dimensional model for this:
Most systems only handle a few of these dimensions. To handle all five, you have to describe (fix) your development process.
The reference:
Managing design data: the five dimensions of CAD frameworks, configuration management, and product data management.
van den Hamer, P. Lepoeter, K.
Philips Res., Eindhoven;
This paper appears in: Proceedings of the IEEE
Publication Date: Jan 1996
Volume: 84, Issue: 1
On page(s): 42-56
ISSN: 0018-9219
References Cited: 26
CODEN: IEEPAD
INSPEC Accession Number: 5175049
Digital Object Identifier: 10.1109/5.476025
Current Version Published: 2002-08-06
just as a reference, drupal uses the following:
node node_revision
---- -------------
nid* vid*
vid nid
... body
...
(node is essentially the main content type). so each revision gets recorded, and to get the latest you pick up the current vid
from node. if you're interested in diffs that may be something to add to your version of node_revision
as well.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With