Pues resulta que tengo un problema con un ejercicio y era para ver si alguien me puede echar una mano sobre que cambiariais o que añadiriais,el enunciado del ejercicio es este.
Una empresa tiene empleados de los que quiere conocer su nombre y la cantidad de clips que utiliza.
Cada vez que un empleado utiliza un clip hay que disminuir en uno el stock de clips e incrementar el número de clips usados por el empleado. El empleado es un avaricioso y jamás devuelve un clip.
Los clips son de distintos colores y debemos saber en cada momento cuantos disponemos por colores. De vez en cuando se reponen los clips y se deben actualizar datos.
Se pide diseñar el modelo relacional, generar las tablas y desarrollar los procedimientos, funciones y cursores que den el servicio adecuado para realizar los procesos anteriormente descritos.
Yo lo he hecho así:
Create table empleados(
Id int primary key,
Nombre varchar(25),
Cantidad int
);
Create table clips(
Id int primary key,
Stock int,
Color varchar(25)
);
Create table emp_clip(
Id_emp int,
Id_clip int,
Id_emp foreign key id(empleados) on update cascade,on delete cascade
Id_clip foreign key id(clips) on update cascade,on delete cascade
*Conocer el nombre y la cantidad de clips de cada empleado
Create procedere conocer(){
Select nombre,cantidad from empleados;
}
Call conocer();
*Conocer la cantidad de clips de cada color
Create procedure color(){
Select cant(color),from clips;}
Call color();
*uso de clip
Delimiter//
Create function operaciones (){
Begin
Declare stock,cantidad int;
Declare one cursor for select cantidad,stock, from empleados join clips;
Open one;
Fetch one into stock,cantidad set stock=stock--;
Set cantidad=cantidad++;
End;}
Delimiter;