Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/03/2014, 12:43
rhapsodyred
 
Fecha de Ingreso: julio-2012
Mensajes: 18
Antigüedad: 12 años, 5 meses
Puntos: 0
Exclamación Comparar tablas para validación de datos

Hola buen día:

Antes que nada agradezco su atención y tiempo, esperando y puedan orientarme un poco.
Bueno, la situación en general es el siguiente: De la tabla user debo obtener los usuarios que presenten alguna incompatibilidad en sus roles asignados.

La estructura de las tablas que tengo es la siguiente

Código MySQL:
Ver original
  1. (
  2.   ID                int(11) NOT NULL AUTO_INCREMENT,
  3.   OPRID         varchar(100) NOT NULL,       //IDENTIFICADOR DEL USUARIO
  4.   NAMEUSR    varchar(100) NOT NULL,       //NOMBRE DEL USUARIO
  5.   ROLNAME    varchar(100) NOT NULL,       //ROL DEL USUARIO
  6.   PRIMARY KEY (ID),
  7. )
  8.  
  9. CREATE TABLE rol_incompatible (
  10.   ID_INC      int(11) NOT NULL AUTO_INCREMENT,
  11.   ID_RGL     int(11) NOT NULL,                       //ID de la regla (LLAVE FORANEA)
  12.   ROLNAME  varchar(100) NOT NULL,              //Nolbre del rol incompatible
  13.   PRIMARY KEY (ID_INC),
  14.   KEY rol_in_fk1 (ID_RGL),
  15.   CONSTRAINT rol_in_fk FOREIGN KEY (ID_RGL) REFERENCES reg_in (ID_RGL)
  16. )
  17.  
  18. CREATE TABLE regla_incompatibilidad
  19. (
  20.         ID_RGL      INT NOT NULL AUTO_INCREMENT,          //ID de la regla
  21.         NAMERGL   VARCHAR(100) NOT NULL,                   //Nombre de la regla
  22.         PRIMARY KEY (ID_RGL)                
  23. )
-La tabla user contiene una lista de usuarios con sus roles asignados.

user

ID OPRID NAMEUSR ROLNAME
1 PPEREZ PEPITO PEREZ CONSULTA PORTAL
2 PPEREZ PEPITO PEREZ SOLICITUD DE GASTOS
3 PPEREZ PEPITO PEREZ CONSULTA USUARIOS
4 PPEREZ PEPITO PEREZ APROBACION DE GASTOS
5 PPEREZ PEPITO PEREZ CONSULTA PRODUCTOS

En la tabla rol_incompatible, se tiene el registro de los roles que estando juntos presentan incompatibilidad

[rol_incompatible

ID ID_RGL ROLNAME
1 1 APROBACION DE NOMINA
2 1 MODIFICACION DE NOMINA
3 2 SOLICITUD DE GASTOS
4 2 APROBACION DE GASTOS

En la tabla regla_incompatibilidad, se registran nuevas reglas de incompatibilidad, está ligada con la tabla rol_incompatible, ya que si agrego una nueva regla de incompatibilidad debo asignarle los roles que estén ligados a esa regla.

regla_incompatibilidad

ID_RGL NAMERGL
1 REGLA INCOMPATIBILIDAD DE NOMINA
2 REGLA DE INCOMPATIBILIDAD DE GASTOS

Por ejemplo: Analizando las 3 tablas anteriores podemos observar que el usuario PEPITO PEREZ presenta una incompatibilidad de roles, los roles SOLICITUD DE GASTOS y APROBACIÓN DE GASTOS no pueden estar asignados aun mismo usuario, como se indica en la REGLA DE INCOMPATIBILIDAD DE GASTOS. Entonces como les comento lo que necesito es una consulta en la cual pueda obtener los usuarios que presenten este tipo de incompatibilidades.
De antemano nuevamente agradezco su apoyo.

Saludos

Última edición por gnzsoloyo; 31/03/2014 a las 17:19