2008-11-06 10 views
12

Estoy buscando construir la funcionalidad básica de CMS en nuestro producto web y estoy investigando sugerencias y ideas de diseño para el contenido de versiones. Estoy buscando específicamente esquemas de bases de datos en uso hoy en día.Estrategias de control de versiones de CMS para el contenido

¿Qué está utilizando para el control de versiones de contenido? ¿Qué patrones se aplican si tiene diferentes tipos de contenido que necesitan versiones almacenadas? ¿Cómo se manejan las versiones de las preguntas en Stack Overflow?

Gracias

Respuesta

11

Literatura utiliza un modelo de 5 dimensiones para esto:

versión
  • (querer cambiar)
  • estado (ciclo de vida: crear, probar, implementar retirarse)
  • vista (HTML, PDF, sistema de archivos, derivabilidad)
  • jerarquía (página, sección, párrafo)
  • variante (, que describen las diferencias, las familias en gran medida similares de productos)

La mayoría de los sistemas solo manejan algunas de estas dimensiones. Para manejar los cinco, debe describir (corregir) su proceso de desarrollo.

La referencia:

Gestión de datos de diseño: las cinco dimensiones de los marcos de CAD, gestión de la configuración, y gestión de datos de producto.
van den Hamer, P. Lepoeter, K.
Philips Res.Eindhoven

Este documento se encuentra en: Proceedings of the IEEE Fecha
Publicación: Enero de 1996
Volumen: 84, Número: 1
En la página (s): 42-56
ISSN: 0018 hasta 9219
referencias citadas: 26
CODEN: IEEPAD
INSPEC Número de Acceso: 5175049
Identificador de objetos digitales: 10.1109/5.476025
versión actual de publicación: 20 02-08-06

+0

Esto es muy útil desde un punto de vista conceptual. –

+0

Sí, encontré el artículo muy esclarecedor. –

1

Mi instinto es que lo mejor de esto es (por orden de bestitude):

  1. Un sistema de control de versiones listo. A nice list here.
  2. Almacenamiento diffs. What is a diff here.
  3. Supongo que la solución de base de datos obvia de tener una tabla "ContentVersion", donde tiene múltiples "Versiones" por único "Contenido".
2

simplemente como una referencia, drupal utiliza la siguiente:

node   node_revision 
----   ------------- 
nid*   vid* 
vid   nid 
...   body 
      ... 

(nodo es esencialmente el principal tipo de contenido). por lo tanto, cada revisión se graba y, para obtener la última, toma el vid actual del nodo. si está interesado en diffs, también puede ser algo que se agregue a su versión de node_revision.

Cuestiones relacionadas