26/02/2012, 05:16
|
| | | Fecha de Ingreso: febrero-2012 Ubicación: Lejanías
Mensajes: 69
Antigüedad: 12 años, 11 meses Puntos: 21 | |
Respuesta: Base de datos roles y grupos. Siempre que necesito hacer sistemas de usuarios y roles, uso 3 tablas. Voy a crear un caso hipotetico y muy sencillo. Tabla Usuarios id_usuario | nombre_usuario | (otros campos) Tabla Roles id_rol | nombre_rol | descripcion_rol Tabla Mapeo de roles
id_mapeo | id_rol | id_usuario
---
En la tabla Mapeo de roles creo las llaves foráneas de los id a sus tablas correspondientes y con atributos "On delete y On update" en "cascade" asi cada vez que se elimine o actualice un usuario o un dato de la tabla de mapeo o en las tablas referenciadas, todas se actualizan según la acción. Esto tiene dependencia de gusto, organización y lógica de estructuración.
Se ve costoso en cuestión de recursos pero una BBDD con diagramación de mapeo arroja resultados más manipulables y menos riesgosos.
Para hacer las consultas tan solo se hacen JOIN a las tres tablas también ahorrando consultas y condicionales a la hora de obtener datos.
Como opcional yo creo una cuarta tabla con los permisos para cada rol, así también la ejecución de todo un sitio se puede ver involucrado a la BBDD y será totalmente dinámica, ya que cambia un permiso, cambia el rol y obviamente cambia el usuario.
Como nota final te puedo decir que la mayoría de sitios usan la referencia directa entre las dos tablas, en nuestro ejemplo Usuarios y Roles. Esto ya es a gusto personal y de como vayas a estructurar el proyecto.
De todo esto también dependen los recursos que se usen para la organización de la lógica de negocios.
Eso es todo, saludos! |