Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Problema conceptual sobre control de acceso

Estas en el tema de Problema conceptual sobre control de acceso en el foro de Bases de Datos General en Foros del Web. Hola a todos, Quiero plantearos un problema con el que me he encontrado y para el cual se me ocurren un par de soluciones, pero ...
  #1 (permalink)  
Antiguo 21/10/2011, 20:27
 
Fecha de Ingreso: diciembre-2009
Mensajes: 19
Antigüedad: 14 años, 11 meses
Puntos: 0
Problema conceptual sobre control de acceso

Hola a todos,

Quiero plantearos un problema con el que me he encontrado y para el cual se me ocurren un par de soluciones, pero me gustaría saber si alguien conoce una "solución óptima" en el sentido de si existe una especie de "best practice" para resolverlo.

Tengo una BD para gestionar el workflow de una agencia literaria, donde tengo varias tablas que contienen los datos de distintos tipos de usuarios:
EMPLEADOS: Los currelas de la empresa
AUTORES: Usuarios ajenos a la empresa que la proveen con sus obras
PROVEEDORES: Usuarios ajenos, normalmente directores de editoriales que nos dan trabajos para vender en el extranjero
TRADUCTORES: Autónomos que se encargan de mantener la web bien traducida en varios idiomas
(y algunos más)

Todos estos usuarios deben acceder al sistema para hacer cada uno sus tareas: por ejeplo un EMPLEADO puede entrar para emitir una factura, un AUTOR para subir un texto a la BD, un PROVEEDOR para borrar un título que estabamos representando y un TRADUCTOR para corregir el alemán de una página de la web.

Cada uno de estos grupos está alamacenado en su tabla correspondiente, pero todos ellos deben acceder por la misma página de login, se se encargará de validar el par usuario-password de cada uno.

La pregunta principal que os planteo es:

A) ¿Debo incluir los campos LOGIN y PASSWORD en cada una de las tablas mencionadas? o en cambio B) ¿Debo crear una tabla USUARIOS que incluya todos los LOGIN y PASSWORD de todos los tipos de usuarios y luego relacionar cada registro de esta con un registro de una de las otras tablas (p. e, a través de un campo email, que es clave única)?

A) Tiene la ventaja de ser más sencillo de implementar, pero me obliga a ir buscando el par LOGIN-PASSWORD por las varias tablas, una a una y además tendría que implementar funciones para asegurar que no se produzcan repeticiones de este par entre varias tablas

B) Me permite buscar LOGIN_PASSWORD de una sola consulta y evitar las inconsistencias, pero me complica las consultas de acceso a los datos, obligándome a hacer más JOINS, etc.

Alguien tiene una C) que sea mejor que estas dos?

Muchas gracias a todos
  #2 (permalink)  
Antiguo 24/10/2011, 08:29
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Problema conceptual sobre control de acceso

Cita:
Iniciado por alsuara Ver Mensaje
A) ¿Debo incluir los campos LOGIN y PASSWORD en cada una de las tablas mencionadas? o en cambio B) ¿Debo crear una tabla USUARIOS que incluya todos los LOGIN y PASSWORD de todos los tipos de usuarios y luego relacionar cada registro de esta con un registro de una de las otras tablas (p. e, a través de un campo email, que es clave única)?

A) Tiene la ventaja de ser más sencillo de implementar, pero me obliga a ir buscando el par LOGIN-PASSWORD por las varias tablas, una a una y además tendría que implementar funciones para asegurar que no se produzcan repeticiones de este par entre varias tablas

B) Me permite buscar LOGIN_PASSWORD de una sola consulta y evitar las inconsistencias, pero me complica las consultas de acceso a los datos, obligándome a hacer más JOINS, etc.

Alguien tiene una C) que sea mejor que estas dos?

Muchas gracias a todos

A) Para empezar para que guardarias el login y el pass en cada tabla?? nada mas tendrias que relacionarlos con el ID del usuario.
B)Lo mejor seria que crearas una tabla de usuarios y otra para manejar los roles, en tus demas tablas nada mas tendrias que agregar el identificador del usuario(id autonumerico, mail etc)
A2)De nuevo porque login-pass en todas las tablas?? ese seria un error de normalizacion
B2)No harias mas joins simplemente ligarias tu usuario con las demas tablas(1 join de mas en tus querys)
C)2 opciones??? disculpa pero yo nada mas vi una :P

Saludos!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: bd, control, tabla, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:57.