Ver Mensaje Individual
  #15 (permalink)  
Antiguo 05/01/2017, 08:06
Avatar de NLeone
NLeone
 
Fecha de Ingreso: junio-2012
Ubicación: Buenos Aires.
Mensajes: 22
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: [CONSULTA] Sobre Diseño.

Cita:
Iniciado por Libras Ver Mensaje
y porque mejor no haces una tabla para auditoria? donde tengas todos esos datos mas el nombre de la tabla ;) y listo te evitas el tener los mismos campos en cada tabla :P
Libras! Me gusta esa idea, nunca lo hice porque en las veces que vi ejemplos o estudié algún concepto lo vi hecho de esta manera, porque en realidad si te pones a pensar, el campo xlj_status_id es una FK de la tabla status que pueden ser varios, esto no se puede cambiar, luego, conceptualmente los campos created_by, created_at, updated_by y updated_at son de auditoria, no son atributos que pertenezcan a una tabla específica, desde la parte conceptual obvio. Pero técnicamente se repiten y hacen como bien decís las tablas no estén ni en le 3 forma normal...

Los campos id_user_bloqueo también es una FK así que no molesta, y el campo version, me lo obliga a poner el framework Yii2 para los bloqueos optimistas, ya que trae un método para poder controlar la versión de los registros.

Ahora mi consulta en base a lo que sugerís que me interesa mucho, es la siguiente:

Actualmente con la estructura como la tengo, con eventos del mismo framework que actúan como triggers de base de datos, pero son de aplicación, guarda automáticamente el usuario y la fecha con una expresión NOW, esos campos por cada INSERT o UPDATE.

Si lo hago como lo dices, deberé en cada uno de los métodos de INSERT o UPDATE insertar un registro en la tabla_auditoria, luego para recuperarlos en las vistas de la aplicación, deberé o unir los datos de las tablas o realizar joins no es así? este es óptimo para resultados de más de 500 o 1000 registros por página? Mi cliente necesita ver por cada persona quién la crea a qué hora y quién modifica un registro.

Bueno espero no haber abusado de tu tiempo.

Saludos y gracias nuevamente!