17/03/2006, 17:48
|
| | | Fecha de Ingreso: febrero-2005
Mensajes: 406
Antigüedad: 19 años, 10 meses Puntos: 2 | |
Una Solucion Alternativa muchas gracias Mithrandir.
Te cuento que ya llegamos a una mejor solución con mi equipo.
Diseñamos una técnica en la que se guardan datos históricos en cada tabla, es decir, el cambio se hace a nivel de cada tabla, esto para poder reconstruir reportes dependiendo de la fecha y versión.
La técnica es la siguiente:
1. Todas las tablas que participan en el proceso, llevan dos atributos extra:
a. fecha (timestamp)
b. versión, donde versión 0 es la última versión.
2. Existen dos condiciones para hacer modificaciones:
a. Modificación trascendental
b. Modificación no trascendental
3. Si la Modificación es trascendental, se hace una inserción en la base de datos de la fila (o filas) que son objetos de cambio, y el dato que estaba antes de modificarse pasa a tener el último número en versión. Los nuevos datos pasan a tener versión 0 y se graban con su timestamp correspondiente.
4. Si la Modificación no es trascendental, el último dato es actualizado, es decir sobreescrito (ya no se cambia versión ni se hace la actualización).
5. Para la recuperación de Datos: esta se basa en elegir la fecha de modificación (si se está en modo histórico) y jalar las tablas relacionadas a la recuperación aumentando la restriccion de si la fecha de modificación de la tabla en cuestión es menor o igual a la fecha de la que se quiere sacar el reporte.
Si no se está en modo histórico, la consulta saca las tablas relacionadas agregando la restricción de sacar la máxima fecha (es decir, la última). MODIFICACION 21/03/2006 -> También se puede obtener de mejor forma si es que se eligen las versiones "0", las últimas.
6. El modo histórico correspondería a un usuario con roles mas altos (administrador p.ej), el cual podría dar permiso a los usuarios de rol inferior para que hagan modificaciones. Acá también se define si el cambio que se va a hacer es trascendental o no trascendental (en web, por ejemplo con variables de sesion o cookies).
Ventajas: Siempre se puede reconstruir los formularios dependiendo de la fecha en la que se quiera ver el histórico.
Desventajas: Si no se administra bien, es posible tener basura acumulada en cada tabla lo cual podria incurrir en fallos de performance y otros.
y bueno creo que ese es el algoritmo básico.
espero que pueda ser un método que resultados deseados.
saludos
MODIFICACION 21/03/2006 -> Créditos: bicha_ares
__________________ 0.o Rodri
Última edición por rodri; 21/03/2006 a las 08:44 |