Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

CMS versioning strategies for content

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

like image 549
Brian Vallelunga Avatar asked Nov 06 '08 22:11

Brian Vallelunga


People also ask

What is content versioning?

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.

What is versioning in CMS?

Versioning saves a copy of the current page so that an author can view, and revert back to it in the future.

What is the importance of versioning in any CMS?

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.

What is the difference between version control and version management?

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.


2 Answers

Literature uses a 5 dimensional model for this:

  • version (wanting to change)
  • status (life cycle: creating, testing, deploy, retire)
  • view (html, pdf, file system, derivability)
  • hierarchy (page, section, paragraph)
  • variant (largely similar, describing the differences, product families)

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

like image 116
Stephan Eggermont Avatar answered Nov 04 '22 12:11

Stephan Eggermont


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.

like image 38
Owen Avatar answered Nov 04 '22 12:11

Owen