Enunciado #
Una empresa necesita gestionar a sus empleados y el acceso de algunos de ellos al sistema informático corporativo. No todos los empleados tienen una cuenta de usuario.
Datos que debes almacenar #
- Empleado:
id_empleado (entero, identificador, autoincremental), nombre (texto), apellidos (texto), dni (texto, único), fecha_contratacion (fecha) y puesto (texto).
- UsuarioSistema:
id_usuario (entero, identificador, autoincremental), nombre_usuario (texto, único), contrasena_hash (texto) y rol (enum; valores ADMIN, GESTOR o LECTOR).
Reglas del negocio #
- Un empleado puede no tener usuario o tener uno solo. Este es el supuesto que usaremos para concretar el acceso individual al sistema.
- Todo usuario del sistema pertenece obligatoriamente a un empleado; no se admiten cuentas huérfanas ni compartidas.
- Añade
id_empleado (entero) en UsuarioSistema y determina las restricciones necesarias para impedir dos cuentas del mismo empleado.
- El DNI y el nombre de usuario no pueden repetirse.
- Todos los campos son obligatorios.
Diseña una relación 1:1 con participación opcional del empleado. La ausencia de cuenta se representa mediante la ausencia de una fila en UsuarioSistema, no mediante una FK nula en una cuenta existente.
Adaptación del documento: se almacena contrasena_hash en lugar de una contraseña en texto plano. El cálculo y la comprobación del hash se realizarían en la aplicación.