entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

MYSQL, BASE DE DATOS

Buena tarde, quiero crear unas tablas:(Operaciones, transacciones, Monitoreo) y todas las tablas deben llevar éstos campos para trazar el registro:

  1. fecha de creacion.
  2. fecha de modificacion.
  3. usuario que creó el registro.
  4. usuario que modificó por última vez el registro.
create table operaciones (
      id_operacion_pk int
    , descripcion_operacion varchar(50)
    , fch_creacion timestamp
    , fch_modificacion timestamp
    , usuario_creacion  varchar(35)
    , usuario_modificacion varchar(35)
);

create table transacciones (
      id_transaccion_pk int
    , descripcion_transaccion varchar(50)
    , fch_creacion timestamp
    , fch_modificacion timestamp
    , usuario_creacion  varchar(35)
    , usuario_modificacion varchar(35)
);

debería crear otra tabla para guardar los campos (fechas y usuarios) y guardar el FK de ésta nueva tabla en una asociativa de los catálogos (operaciones y transacciones)????

1 Respuesta

2votos

Th3Mik3s Puntos2950

Saludos, pues para iniciar veo que es la misma estructura para ambas tablas.

Podrías simplificarlas

Tabla movimiento donde el tipo define si es operación = 0 o transacción = 1

create table movimiento(
      id_movimiento_pk int
    , descripcion varchar(50)
    , tipo tinyint(1)
);

La tabla que almacena que se ha realizado donde el tipo define si es creación = 1, o modificación = 1, (los manejo así por si luego hay más estados) y ahí van los FKs de usuario y movimiento.

create table monitoreo(
      id_monitoreo_pk int
    , fch timestamp
    , id_usuario_fk int
    , id_movimiento_fk int
    , tipo tinyint(1)
);

Y tu tabla usuario

create table usuario(
      id_usuario_pk int
);

2votos

miggbriones comentado

En realidad las tablas operaciones y transacciones tienen campos propios que ya no puse para ilustrar lo que deseo hacer, como bien planteas pasar los registros que se repiten a una nueva tabla, la cuestión es que existen 15 tablas y TODAS deben tener el conjunto de campos:

    fch_creacion timestamp
    fch_modificacion timestamp
    usuario_creacion  varchar(35)
    usuario_modificacion varchar(35)

Mi duda es, ¿Estoy haciendo lo correcto en crear esa tabla de movimiento con los campos que se repiten en las 15 tablas (claro cada tablas con sus respectivos campos propios) y guardar el id_movimiento_fk para cada una de las 15 tablas?

3votos

Th3Mik3s comentado

Pues al parecer tendrás un módulo para monitorear las acciones del sistema, en ese caso es totalmente válido, ya que podrás armar tus consultas de una manera más sencilla y respetas las reglas de normalización.

3votos

miggbriones comentado

Perfecto, muchas gracias. Me queda totalmente claro! ya elegí tu comentario como mejor respuesta. Saludos!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta