DROP TABLE cn_tabla_log CASCADE CONSTRAINTS
 ;

/**********************************/
/* Table Name: cn_tabla_log */
/**********************************/
CREATE TABLE cn_tabla_log (
 id_log NUMBER NOT NULL,
 id_tabla NUMBER NULL,
 id_vigencia NUMBER NULL,
 id_cen_op NUMBER NULL,
 id_cia NUMBER NULL,
 id_mae_bd NUMBER NULL,
 id_ope_bd NUMBER NOT NULL,
 id_mae_ter NUMBER NOT NULL,
 usuario VARCHAR2(128) NOT NULL,
 fecha_log DATE NOT NULL,
 comando VARCHAR2(128) NOT NULL,
 observacion VARCHAR2(256) NULL
)
 ;


COMMENT ON TABLE cn_tabla_log is 'creada para guardar un registro o log de cada accion, que se aplique en la base de datos'
 ;
COMMENT ON COLUMN cn_tabla_log.id_log is 'id para el consecutivo de la tabla de log'
 ;
COMMENT ON COLUMN cn_tabla_log.id_tabla is 'contenido el id de seguimiento de la tabla afectada'
 ;
COMMENT ON COLUMN cn_tabla_log.id_vigencia is 'id para el manejo de la vigencia o anyo'
 ;
COMMENT ON COLUMN cn_tabla_log.id_cen_op is 'representa el centro de operacion'
 ;
COMMENT ON COLUMN cn_tabla_log.id_cia is 'id de identificacion para la compahnia'
 ;
COMMENT ON COLUMN cn_tabla_log.id_mae_bd is 'identifica la tabla en la bd'
 ;
COMMENT ON COLUMN cn_tabla_log.id_ope_bd is 'id para conocer la accion realizada'
 ;
COMMENT ON COLUMN cn_tabla_log.id_mae_ter is 'id del maestro tercero'
 ;
COMMENT ON COLUMN cn_tabla_log.usuario is 'usuario para el registro del log'
 ;
COMMENT ON COLUMN cn_tabla_log.fecha_log is 'fecha de registro del log'
 ;
COMMENT ON COLUMN cn_tabla_log.comando is 'texto que identifica la funcionalidad'
 ;
COMMENT ON COLUMN cn_tabla_log.observacion is 'descripcion del cambio realizado'
 ;

/*llave primaria*/
ALTER TABLE cn_tabla_log ADD CONSTRAINT cn_tabla_log_PK PRIMARY KEY (id_log)
 ;
ALTER TABLE cn_tabla_log ADD CONSTRAINT cn_tabla_log_FK0 FOREIGN KEY (id_mae_bd) REFERENCES cn_mae_bd (id_mae_bd)
 ;
ALTER TABLE cn_tabla_log ADD CONSTRAINT cn_tabla_log_FK1 FOREIGN KEY (id_ope_bd) REFERENCES cn_ope_bd (id_ope_bd)
 ;
ALTER TABLE cn_tabla_log ADD CONSTRAINT cn_tabla_log_FK2
FOREIGN KEY (id_mae_ter,id_cia) REFERENCES cn_mae_ter (id_mae_ter,id_cia)
 ;

/*secuencia y trigger*/
DROP SEQUENCE cn_tabla_log_SEQ
 ;
CREATE SEQUENCE cn_tabla_log_SEQ NOMAXVALUE NOCACHE NOORDER NOCYCLE
 ;
DROP TRIGGER cn_tabla_log_TRG
 ;
CREATE TRIGGER cn_tabla_log_TRG
BEFORE INSERT ON cn_tabla_log
FOR EACH ROW
BEGIN
SELECT cn_tabla_log_SEQ.NEXTVAL INTO :NEW.id_log FROM DUAL;
END;
 ;
ALTER TRIGGER cn_tabla_log_TRG ENABLE
 ;


DROP TABLE cn_mae_bd CASCADE CONSTRAINTS
 ;

/**********************************/
/* Table Name: cn_mae_bd */
/**********************************/
CREATE TABLE cn_mae_bd (
 id_mae_bd NUMBER NOT NULL,
 des_mae_bd VARCHAR2(128) NOT NULL
)
 ;

COMMENT ON TABLE cn_mae_bd is 'tabla para guardar los nombres de cada tabla de la bd por un id'
 ;
COMMENT ON COLUMN cn_mae_bd.id_mae_bd is 'id unico para identificar una tabla'
 ;
COMMENT ON COLUMN cn_mae_bd.des_mae_bd is 'nombre de la tabla en la base de datos'
 ;

/*llave primaria*/
ALTER TABLE cn_mae_bd ADD CONSTRAINT cn_mae_bd_PK PRIMARY KEY (id_mae_bd)
 ;



DROP TABLE cn_ope_bd CASCADE CONSTRAINTS
 ;

/**********************************/
/* Table Name: cn_ope_bd */
/**********************************/
CREATE TABLE cn_ope_bd (
 id_ope_bd NUMBER NOT NULL,
 des_ope_bd VARCHAR2(128) NOT NULL
)
 ;

COMMENT ON TABLE cn_ope_bd is 'tabla para el manejo de acciones que se realizan sobre una aplicacion'
 ;
COMMENT ON COLUMN cn_ope_bd.id_ope_bd is 'id para cada una de las operaciones que se manejen sobre la base'
 ;
COMMENT ON COLUMN cn_ope_bd.des_ope_bd is 'descripcion o nombre para la accion en la bd'
 ;

/*llave primaria*/
ALTER TABLE cn_ope_bd ADD CONSTRAINT cn_ope_bd_PK PRIMARY KEY (id_ope_bd)
 ;


