- La aplicación será una gestión básica de una empresa a nivel de datos
- La empresa tiene tres elementos:
- Empleados
- Clientes
- Facturas
- Además se añaden los siguientes requisitos extras
-
(: Los requisitos se establecen para buscra casuísticas que nos obliguen a adaptar nuestro software a situaciones concretas particulares. No pretende buscar situaciones reales, sino forzarlas para necesitar adaptar el desarrollo a las mismas.)
- En esta línea se establecen los siguientes requisitos:
- De los empleados, nos interesa saber qué idiomas hablan
-
Almacenaremos sus 6 idiomas que mejor controlan aparte de su idioma materno que no almacenaremos.
Por lo tanto, de cada empleado queremos almacenar
entre 0 y 6 idiomas que hable (además del suyo).
- Las facturas pueden pertenecer a 1 o 4 clientes
- Lógicamente cada cliente puede tener muchas facturas o ninguna
- El siguiente diagrama E/R establece esta información
- Gestion por roles
- Es una utilidad que suelen tener muchas aplicaciónes donde hay diferentes secciones en nuestro sistema
- Es algo muy típico y muy bien implementado en los csm, que básicamente consiste en:
Ideas sobre un sistema de roles en una aplicación
1.- Te identificas en el sistema
2.- En función de tus credenciales puedes realizar determinadas acciones en el sistema
3.- Se identifican roles y a cada rol se le asignan determinadas acciones (dar de alta usuarios, subir noticias, modificar clientes ...)
4.- A los diferentes usuarios se les asisigna un rol concreto, con lo que puede realizar las acciones que a ese rol se le han atribuído
5.- El sistema es tremendamente flexible, puedo asignar permisos concretos (pe. facturas.read o clientes.create representando la acción de leer de la tabla facturas o crear nuevos clientes) a un rol que tenga un usuario o directamente a un usuario.
5.- Muchas veces, simplemente con un rol, podemos dejar establecido este sistema de permisos, otras veces tendremos que usar permisos para mayor detalle si así lo necesitamos.
|
- Para este post, vamos a implementar un ejemplo de una aplicación donde tenemos la siguiente situación.
- Una app que gestiona a nivel de CRUD las sigueintes tablas
- Y queremos establecer el siguiente sistema de permisos que pretende dejar claro el diagrama siguiente
|