-- o privilegio mais recente de um utilizador
DROP VIEW IF EXISTS v_max_privilegio;
CREATE VIEW v_max_privilegio AS SELECT * FROM `utilizador_privilegio` WHERE idUtilizadorPrivilegio IN(SELECT MAX(idUtilizadorPrivilegio) FROM utilizador_privilegio GROUP BY idUtilizador);
-- o estado mais recente de um utilizador
DROP VIEW IF EXISTS v_max_estado_utilizador;
CREATE VIEW v_max_estado_utilizador AS SELECT * FROM estado_utilizador WHERE idEstadoUtilizador IN(SELECT MAX(idEstadoUtilizador) FROM estado_utilizador GROUP BY idUtilizador);
-- para efeturar login
DROP VIEW IF EXISTS v_login;
CREATE VIEW v_login AS
SELECT idUtilizador, utilizador, senha, idPrivilegio FROM utilizador JOIN v_max_estado_utilizador USING(idUtilizador) JOIN senha USING(idUtilizador) JOIN v_max_privilegio USING(idUtilizador) WHERE idEstado=2;
-- procedimento do aluno a fazer o pedido
BEGIN
INSERT INTO pedido (idAluno, idEstadoSalaProfessor) VALUES (a,b);
SET @idPedido=LAST_INSERT_ID();
INSERT INTO estado_pedido (idEstado, idPedido) VALUES (3,@idPedido);
END
-- valor mais recente de um pedido
DROP VIEW IF EXISTS v_pedido_mais_recente;
CREATE VIEW v_pedido_mais_recente AS SELECT * FROM estado_pedido WHERE idestadoPedido IN(SELECT MAX(idEstadoPedido) FROM estado_pedido GROUP BY idPedido);
-- valor mais recente de um pedido ativo
DROP VIEW IF EXISTS v_pedido_ativo;
CREATE VIEW v_pedido_ativo AS SELECT * FROM estado_pedido WHERE idestadoPedido IN(SELECT MAX(idEstadoPedido) FROM estado_pedido GROUP BY idPedido) and idEstado=3;
-- valor
DROP VIEW IF EXISTS v_pedido_ativo_aluno_professor;
CREATE VIEW v_pedido_ativo_aluno_professor AS
SELECT sala, idPedido, idUtilizador AS idAluno, utilizador AS aluno, idProfessor, dataPedido FROM v_pedido_ativo JOIN pedido USING(idPedido) JOIN utilizador ON pedido.idAluno=utilizador.idUtilizador JOIN estado_sala_professor USING(idEstadoSalaProfessor) JOIN sala_professor USING(idSalaProfessor) JOIN sala USING(idSala);
DROP VIEW IF EXISTS v_pedido_aluno_professor;
CREATE VIEW v_pedido_aluno_professor AS
SELECT idPedido, sala, idUtilizador AS idProfessor, idAluno, utilizador AS professor, aluno, dataPedido FROM `v_pedido_ativo_aluno_professor` JOIN utilizador ON idProfessor=idUtilizador;
Sem comentários:
Enviar um comentário