Ir para conteúdo
MauVirtual

Usar Trigger? Procedure? Ambas?

Recommended Posts

Pessoal, estou perdido tenho a seguinte tarefa abaixo, mas usando a trigger não posso dar o select ela nao aceita, e não sei se uso procedure, triger, ambas, sei que essa parte deveria ser feito pela aplicação, mas o professor quer essa apresentação somente em BD.

compare se a data e hora da viagem e o motorista e viatura estão disponíveis antes de incluir no banco de dados,

Entao digamos que a viatura Gol tem uma viagem com o motorista Carlos dia 22/03/2018 as 11:00 com termino no mesmo dia porem na hora 17:00 e suponhamos que alguem quera cadastra a viagem com o mesmo motorista a mesma viatura no mesmo dia porem no horario do 12:00, não poderia ser cadastrado já que a viatura e motorista estariam ocupados. Estão preci ser checado se a viatura está disponivel, se o motorista está disponivel em um intervalo de dia e hora, pois poderam acontecer viagens de mais de um dia.

Abaixo segue meu código sou bem iniciante e toda ajuda seria muito bem vinda.

Já criei um posto sobre isso, mas mudei a tabela e naquele post não consegui resolver

agredeço a ajuda, batendo o desespero já

CREATE TABLE DADOSPESSOAS(
	IDDADOSPESSOAS INT PRIMARY KEY AUTO_INCREMENT,
	NOME VARCHAR(45) NOT NULL,
	EMAIL VARCHAR(45) UNIQUE NOT NULL,
	NIVEL CHAR(1) NOT NULL,
	DATANASCIMENTO DATE NOT NULL,
	SEXO CHAR(1) NOT NULL,
	CPF CHAR(14) UNIQUE NOT NULL,
	CELULAR VARCHAR(14) UNIQUE NOT NULL,
	CEP CHAR (9) NOT NULL,
	RUA VARCHAR(30) NOT NULL,
	NUMERO VARCHAR(8) NOT NULL,
	BAIRRO VARCHAR(25) NOT NULL,
	CIDADE VARCHAR(40) NOT NULL,
	ESTADO CHAR(2) NOT NULL
);

CREATE TABLE MOTORISTA (
	IDMOTORISTA INT PRIMARY KEY AUTO_INCREMENT,
	NUMEROREGISTRO VARCHAR(10) UNIQUE NOT NULL,
	VALIDADE DATE NOT NULL,
	ID_DADOSPESSOAS INT
);


CREATE TABLE ADMIN(
	IDADMIN INT PRIMARY KEY AUTO_INCREMENT,
	SENHA VARCHAR(12) NOT NULL,
	ID_DADOSPESSOAS INT
);

CREATE TABLE VIATURA (
	IDVIATURA INT PRIMARY KEY AUTO_INCREMENT,
	TIPOVEICULO VARCHAR(45) NOT NULL,
	MARCA VARCHAR(25) NOT NULL,
	MODELO VARCHAR(25) NOT NULL,
	COR VARCHAR(25) NOT NULL,
	ANOFABRICACAO CHAR(4) NOT NULL,
	PLACA CHAR(8) UNIQUE NOT NULL,
	RENAVAN CHAR(11) UNIQUE NOT NULL,
	PASSAGEIROS CHAR(2) NOT NULL

);

CREATE TABLE VIAGENS (
	IDVIAGENS INT PRIMARY KEY AUTO_INCREMENT,
	CIDADE VARCHAR(25) NOT NULL,
	DATAHORAINICIO DATETIME NOT NULL,
	DATAHORAFINAL DATETIME NOT NULL,
	COR VARCHAR(15) NOT NULL,
	CEP CHAR(9) NOT NULL,
	RUA VARCHAR(30) NOT NULL,
	NUMERO VARCHAR(8) NOT NULL,
	BAIRRO VARCHAR(25) NOT NULL,
	ESTADO CHAR(2) NOT NULL,
	DESCRICAO VARCHAR(200),
	ID_DADOSPESSOAS INT,
	ID_MOTORISTA INT,
	ID_VIATURA INT
);

CREATE  TABLE  PASSAGEIRO (
	IDPASSAGEIRO INT  PRIMARY KEY AUTO_INCREMENT,
	ID_DADOSPESSOAS INT ,
	ID_VIAGEM INT
);


	ALTER TABLE VIAGENS
	ADD CONSTRAINT FK_DADOSPESSOAS_VIAGENS
	FOREIGN KEY (ID_DADOSPESSOAS)
	REFERENCES DADOSPESSOAS(IDDADOSPESSOAS) ON DELETE CASCADE ON UPDATE CASCADE;

	ALTER TABLE VIAGENS
	ADD CONSTRAINT FK_MOTORISTA_VIAGENS
	FOREIGN KEY (ID_MOTORISTA)
	REFERENCES MOTORISTA(IDMOTORISTA)ON DELETE CASCADE ON UPDATE CASCADE;

	ALTER TABLE VIAGENS
	ADD CONSTRAINT FK_VIATURA_VIAGENS
	FOREIGN KEY (ID_VIATURA)
	REFERENCES VIATURA(IDVIATURA)ON DELETE CASCADE ON UPDATE CASCADE;

	ALTER TABLE MOTORISTA
	ADD CONSTRAINT FK_DADOSPESSOAS_MOTORISTA
	FOREIGN KEY (ID_DADOSPESSOAS)
	REFERENCES DADOSPESSOAS(IDDADOSPESSOAS)ON DELETE CASCADE ON UPDATE CASCADE;

	ALTER TABLE ADMIN
	ADD CONSTRAINT FK_DADOSPESSOAS_ADMIN
	FOREIGN KEY (ID_DADOSPESSOAS)
	REFERENCES DADOSPESSOAS(IDDADOSPESSOAS)ON DELETE CASCADE ON UPDATE CASCADE;

	ALTER TABLE PASSAGEIRO
	ADD CONSTRAINT FK_DADOSPESSOAS_PASSAGEIRO
	FOREIGN KEY (ID_DADOSPESSOAS)
	REFERENCES DADOSPESSOAS (IDDADOSPESSOAS)ON DELETE CASCADE ON UPDATE CASCADE;

	ALTER TABLE PASSAGEIRO
	ADD CONSTRAINT FK_VIAGENS_PASSAGEIRO
	FOREIGN KEY (ID_VIAGEM)
	REFERENCES VIAGENS (IDVIAGENS)ON DELETE CASCADE ON UPDATE CASCADE;

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por hustian
      Alguém poderia me dizer se estão corretos os relacionamentos? Como eu passo isso pro sql server?


    • Por BryanSamuel
      Eu gostaria de importar dados de uma planinha que esteja em .xls para mysql, por exemplo, tem uma página html simples onde o usuário vai enviar a planilha, e com isso eu quero importar para uma base de dados, mas tem um porém, por exemplo, tem uma coluna com o número da matrícula de cada aluno, eu gostaria de fazer uma verificação, para que se já existisse um aluno com a matrícula igual, atualizasse somente determinadas colunas, como por exemplo, a coluna turma e a coluna turno, eu sei que parece pedir demais mas eu sou bem novato em php e mysql, se alguém puder ajudar agradeço desde já, abraço. 
      obs. de preferência, se tiver como importar direto de .xls eu agradeço, mas caso só de com .csv também serve
    • Por brunonative
      Bom dia pessoal!
      Estou passando um sufoco aqui na criação de um sistema.
       
      É o seguinte, existem 5 tabelas: Membros | Objetivos | Email | Perguntas | Respostas
      O Administrador cadastra os membros, cria o email (dentro do sistema tem um editor WYSIWYG), perguntas e respostas.
      O administrador na hora de fazer o cadastro ou edição do membro, ele diz qual vai ser o próximo objetivo, qual email vai ser enviado, qual a pergunta que vai junto com o email e qual reposta .. junto com a edição vem A DATA E A HORA PRA ISSO ACONTECER.
       
      A dúvida é a seguinte: Como crio um Trigger para enviar o email criado naquela determinada data e hora?
    • Por Anderson Modolon
      Como funciona a parte de banco de dados para um sistema online onde a pessoa acessa o site faz o cadastro, digita o login e a senha e após clicar em "cadastrar" já pode utilizar o sistema?
       
      Seria um banco de dados geral para todos os usuários? Ou quando o cliente clicar em "cadastrar" ele vai rodar um script onde vai criar dinamicamente o banco de dados específico para aquele usuário com o login e senha que ele escolheu?
       
      A duvida é: Quando existe um sistema online onde o usuário se cadastra é ja sai utilizando, como é feito a parte de banco de dados?
    • Por Dominciano
      Olá a todos.
      Pessoal, trabalho em uma empresa focada em desenvolvimento Desktop utilizando a linguagem DataFlex(sim, provavelmente você nunca ouviu falar. Rs). Meu chefe quer entrar no ramo de desenvolvimento web/mobile para o setor comercial.
      Porém, ninguém da empresa tem grande conhecimento nessa área e como grande parte dos integrantes desse grupo já estão familiarizados com 
      essa área, gostaria de pedir uma sugestão de quais seriam os melhores conjuntos de ferramentas(Linguagem, IDE, BD etc..) poderiamos usar para atender aos seguintes requisitos:
      A arquitetura seria a seguinte:
      -Pode ser pra web(e obrigatoriamente portar pra mobile, pois o foco será esse) ou um aplicativo pra smartphone.
      -Obrigatoriamente precisa sincronizar os dados com a aplicação Desktop(que utiliza o banco de dados DataFlex).
      -Obrigatoriamente ser barato(no sentido de licenciar/distribuir o sistema para os clientes)
      -A(s) ferramenta(s) de desenvolvimento podem ser pagas, desde que a distribuição seja gratuita.
      -Objetivo é baratear o preço no momento da venda do software para o cliente.
      -Os sistemas serão focados em aplicativos comerciais(padarias, bares, lojas de roupas, até mesmo para colégios etc...)
      -Futuramente, gostaríamos de não depender de internet o tempo todo para o cliente utilizar o sistema.
      -O banco de dados não deve passar dos 15kk de registros.
      Desde já, agradeço.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.