Hola a todos. Tengo un problema que me gustaría resolver con una única sentencia SQL. Os cuento.
Tengo 3 tablas: usuarios (idUsuario,nombre,edad);informes (idInforme,idUsuario); usuariosAutorizados(idInforme,idUsuario),
y tienen la siguiente utilidad:
- En la tabla usuarios tengo registrados a todos los usuarios del sistema.
- En la tabla informes tengo registrados todos los informes que los usuarios han creado
- En la tabla usuarios autorizados tengo registrados a los usuarios que están autorizados a visualizar los diferentes informes.
El concepto importante del caso es que un usuario tiene 2 "llaves" mediante las que poder ver los informes:
1- Teniendo más edad que el usuario creador del informe. Es decir, si el informe 1 lo crea 'user1' (de 23 años),
aunque 'user1' no autorice a 'user2' (de 25 años) a ver el informe, 'user2', por el hecho de ser más mayor, podrá ver
tal informe.
2- Otra posibilidad es, aún siendo más pequeño, que 'user2' de (25 años) autorice a 'user3' (de 21 años) a visualizar el informe.
Esta autorización quedará guardada en la tabla usuariosAutorizados
El problema viene ahora. Si tengo 2 usuarios ('userX' y 'userY')de 24 años, ¿cómo puedo hacer para que 1 de ellos visualice todos
los informes que hayan hecho otros usuarios de edad inferior y además aquellos para los cuales esté autorizado
aunque pertenezcan a gente más mayor?
Bueno, "nada más". Un saludo y gracias por todo.