Ver Mensaje Individual
  #4 (permalink)  
Antiguo 20/09/2010, 08:40
pancho2413
 
Fecha de Ingreso: septiembre-2009
Ubicación: Cuenca
Mensajes: 57
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: ayuda en la base de datos

Ahora se me ocurre que para que enlaces esas dos tablas, deberías crear otra tabla con una columna que contenga el ID del usuario conjuntamente con otra columna que contenga un documento al que tenga permiso.
Pueden haber varios registros con misma ID de usuario pero siempre deben haber diferentes valores para la columna 2 del mismo usuario obviamente...
Luego debes consultar qué permisos tiene cada usuario, una consulta sencilla. Si fuese la tabla 'Permisos' fuese así con cierta información de ejemplo:

Creando una tabla llamada 'permisos' donde tenga las columnas descritas al principio de este mensaje te comparto algo interesante:

Esta consulta te provee el nombre del usuario, el código de la oficina a la que pertenece y el código del tipo de documento vinculado:
Código MySQL:
Ver original
  1. select u.nombre, u.idoficina, p.documento from permisos p left join usuario u on p.usuario=u.id;


Y si no quieres los códigos sino los nombres de los mismos:
Código MySQL:
Ver original
  1. select t2.usuario, t2.oficina, d.nombre 'documento' from documento d right join (select t1.nombre 'usuario', o.nombre 'oficina', t1.documento from oficina o right join (select u.nombre, u.idoficina, p.documento from permisos p left join usuario u on p.usuario=u.id) t1 on t1.idoficina=o.id) t2 on t2.documento=d.id;

La velocidad de consulta es óptima, probada con DESCRIBE. Espero que esto sea lo que buscas. Un saludo y Carpe Diem

Última edición por pancho2413; 20/09/2010 a las 11:47