Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/07/2015, 07:48
Avatar de Benderzuelo
Benderzuelo
 
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 11 años, 6 meses
Puntos: 5
Información Permisos, Relaciones, Todo en una misma tabla

Hola amig@s,

les cuento la historia, hace tiempo empecé un proyecto, en el cual el cliente quería tener una tabla en la que existieran todos los usuarios, los usuarios pueden ser de muchísimos tipos, les pongo a continuación por orden de permiso los roles que puede tener un usuario.

Marca, Agencia, encargado, agente, colaborador, seccretario, cliente.

Realmente hay más pero hay muchos que es el mismo por ejemplo la Agencia puede ser Agencia Online, Agencia Física, etc.. por lo tanto es el mismo.

Ahora explico un poco el funcionamiento de los permisos.

La marca puede tener varias agencias, y cada agencia puede dar de alta agentes, y todo lo que viene detrás de ella en el orden que lo he escrito, pero, la marca por ejemplo podrá verlo todo de sus agencias agentes etc, sin embargo las agencias solo pueden ver lo que ellas hayan dado de alta.

El problema es que yo lo que había hecho es añadir 2 campos en el usuario que son, el Id de quien lo ha dado de alta, y el Id de la marca, pero de esta manera las agencias pueden ver todo lo que sea de la marca incluso aunque no sea de ellas,

Lo que yo veo es que para restringir la visualización, como lo hago?, porque claro, había pensado en incluir el id de la agencia tambien, pero luego pasa lo mismo con los agentes, los agentes solo deben de poder ver lo que ellos dan de alta, y aunque sean de la misma agencia no deberían de ver lo que el compañero haya dado de alta,y así todos los permisos, al final para cualquier consulta tendría que hacer una megaconsulta enorme, tener una tabla gigante ya que lo quiere todo en la misma tabla, no se.. estoy perdido...

Yo en su dia le dije que deberíamos de hacer una tabla para cada permiso, si es marca es marca, si es Agencia pues agencia etc.. pero como tiene muchas webs quería que todos los registros que vinieran de las webs tenerlo también en la misma tabla, aunque el permiso que un usuario tiene desde la web es cliente que es el más bajo, o sea el ultimo.

El caso es que ya está muy avanzado y me gustaría saber que posibilidades tengo para hacer esto, que campos debería de añadir etc.. o si por el contrario no tiene que ver con Base de datos.. no se...

Si has llegado hasta aquí, muchas gracias por adelantado.