Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-09-2008
Avatar de felipe88
[felipe88] felipe88 is offline
Miembro Premium
 
Registrado: may 2007
Ubicación: Mi Valle del Cauca... Colombia!!!
Posts: 1.120
Poder: 21
felipe88 Va por buen camino
Ufff... alguien que me saca de mi ignorancia ...
__________________
Web
Responder Con Cita
  #2  
Antiguo 09-09-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Thumbs up

Si amigo maeyanes es LOG en ves de Blog tienes razon,
Bueno mi base de datos esta en Mysql, y se un poco de disparadores o Triggers, pero quisiera una idea o sugerencia , que sé yo por ahi crear una tabla llamada bitacora,donde se guarde todo o algo asi...........
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #3  
Antiguo 09-09-2008
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 26
poliburro Va por buen camino
Ok, se me ocurre

Puedes crear una tabla llamada log_NombreTabla con los campos

Fecha, Campo, ValorAnt, ValorAct.

Entonces haciendo uso de los triggers puedes grabar en tu log los valores de los campo.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #4  
Antiguo 09-09-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Puede ser una buena idea pero no te parece Poliburro que podria haber mucha redundancia de datos, sin contar que por cada tabla habria que hacer eso, seria mejor crear esa tabla pero solo que tenga el valor anterior ,no el actual pues ya esta en la tabla correspondiente.y que se vaya insertando a estatabla todo el el historial....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 10-09-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 26
maeyanes Va por buen camino
Hola...

Cita:
Empezado por rgstuamigo Ver Mensaje
Puede ser una buena idea pero no te parece Poliburro que podria haber mucha redundancia de datos, sin contar que por cada tabla habria que hacer eso, seria mejor crear esa tabla pero solo que tenga el valor anterior ,no el actual pues ya esta en la tabla correspondiente.y que se vaya insertando a estatabla todo el el historial....
Sobre lo que dices de que solo contenga el valor anterior, podría acarrearte problema en que no vas a saber en un determinado momento cual fue el valor nuevo de un campo, solo el anterior, ya que para todos los registros de tu bitácora, el valor nuevo siempre será el último que usaste (o el valor actual del campo en cuestión). Es por eso que se necesita guardar en todo momento el valor viejo y el valor nuevo.

Ahora, si necesitas que sea más de una tabla, podrías indicar a que tabla pertenece ese valor, además de que también tienes que identificar a que registro de esa tabla pertenece ese cambio.

Podrías hacer una estructura así:

Código:
id: integer (campo clave)
tabla: varchar(32)
id_registro: integer
campo: varchar(50)
valor_anterior: varchar(1024)
valor_nuevo: varchar(1024)
fecha: datetime
usuario: varchar(10)
y ya desde tu programa para saber el historico de X registro de Y tabla puedes tener algo como:

Código SQL [-]
select campo, valor_anterior, valor_nuevo, fecha, usuario from bitacora
where tabla = 'Tabla_X' and id_registro = 1 order by fecha


Saludos...
Responder Con Cita
  #6  
Antiguo 12-09-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 28
Delphius Va camino a la fama
Disculpen que me entrometa, se que no voy a decir algo demasiado nuevo, pero me parece que cuando se trata de logs o bitácoras debe tenerse en cuenta la dimensión de lo que se desea realmente.
¿Se va controlar todo lo que se opere?¿O por el contrario sólo una parte?

Esto puede influir en el modo de como diseñar la/s tabla/s. En ciertas ocasiones basta con tener una única tabla en donde se identifique:
1. Hora y fecha
2. La acción realizada
3. La tabla donde se realizó la acción. (si corresponde)
4. El campo donde se realizó la acción. (si corresponde)
5. El valor nuevo (si corresponde)
6. El valor viejo (si corresponde)
7. El usuario
8. Etc...

Pero si se necesita de un diseño exquisito o mucho más elaborado, es muy probable que en vez de esta única tabla existan muchos más. Es más, como ya he indicado en otras ocasiones... se puede caer en la idea de añadir un 50% más de tablas.

En fin todo dependerá de los requisitos, de las restricciones, y hasta puede que existan leyes que influyan y/o determinen que, como, y/o cuando guardar en una bitácora. Lo que hay que preguntarse en este momento es ¿Para qué o con qué propósito añadimos está bitácora o log? ¿Quíen la usará? O mejor dicho: ¿Cómo se definirán los perfiles de acceso a la información?

A lo que voy es que debe dimensionarse la realidad del negocio. Si es para el negocio de la esquina, no vale la pena romperse demasiado la cabeza... si es para un sistema bancario, mejor tomarse algunas aspirinas.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 12-09-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Thumbs up

Gracias a todos por darme ideas sobre el asunto.
La idea de hacer una bitacora o log no es para un pequeño sistemita hecho segun mi criterio(empiricamente), sino para poder implementarlo como dije en un Sistema de Informacion que estoy haciendo.(para los que no entiende que es un sistema de informacion)Es un Sistema completo bien detallado,documentado,con casos de usos,modelo de negocio, modelo de dominio,diagramas de secuencias,diagramas de flujo de la informacion,etc,en fin un sin numero de informacion documentada, donde lo que esta escrito en papel debe coincidir con el Sistema (Aplicacion Grande).
Osea no es Hacer por hacer sino seguir una medologia para la implementacion de tu sistema donde requieres de muchos datos.
Espero haber sido claro....Gracias por sus respuestas...
Pero si alguien puede agregar mas ,seria bien recibido por mi parte Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #8  
Antiguo 10-09-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.471
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por poliburro Ver Mensaje
Puedes crear una tabla llamada log_NombreTabla con los campos
Fecha, Campo, ValorAnt, ValorAct.
Yo a eso añadiría el usuario, al menos, para conocer quien ha hecho las modificaciones.
El campo fecha, entiendo que es FechaHora.

Nosotros tenemos un sistema similar, aunque bastante mas complejo. El problema es que eso implicaría muchos cambios en el diseño. Todos nuestras sentencias SQL están centralizadas, por lo que en ese punto es más sencillo guardar la información de este tipo.
Si no lo has tenido en cuenta desde un principio, creo que la forma más fácil (por no decir la única) es con Triggers, como te han dicho.

Puedes mejorar, por ejempo, utilizar una tabla auxiliar que te permita activar/desactivar las tablas sobre las que quieres LOG. Normalmente no se necesitas de todas, sino de algunas tablas que se consideran "críticas".

Si posees claves primarias únicas, en todas las tablas, te puede ayudar a posteriormente encontrar y relacionar los datos de las tablas con el LOG.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
6:45 bitacora Caral La Taberna 206 30-08-2008 16:15:58
tablas para una bitacora gabrielflowers Tablas planas 4 28-08-2007 00:01:50
Mostrar ventana con cuaderno de bitácora en programa automático Ñuño Martínez Varios 19 23-01-2007 00:11:03
Google despide al empleado que publicaba una bitácora marcoszorrilla Noticias 0 09-02-2005 22:27:09
Razones para hacer (o no hacer) ejercicio Nuria Humor 1 02-09-2004 13:05:43


La franja horaria es GMT +2. Ahora son las 19:35:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi