Bom dia,
Estou fazendo um projeto da faculdade referente a uma locadora de carros.
Existe a possibilidade de se alugar mais de um carro em uma única locação, então dessa forma eu divida as tabelas em
LOCAÇÃO
ITEM DE LOCAÇÃO
VEICULO
As tabelas estão +/- assim (não defini os tipos corretamente pois estava utilizando apenas para testes)
//CLIENTE PJ
CREATE TABLE `locadora`.`clientepf` (
`codigo` INT NOT NULL AUTO_INCREMENT ,
`nome` VARCHAR(45) NOT NULL ,
`email` VARCHAR(45) NOT NULL ,
`cpf` VARCHAR(45) NOT NULL ,
`rg` VARCHAR(45) NOT NULL ,
`cidade` VARCHAR(45) NOT NULL ,
`telefoneRes` VARCHAR(45) NOT NULL ,
`telefoneCom` VARCHAR(45) NULL ,
`celular` VARCHAR(45) NULL ,
`endereco` VARCHAR(45) NOT NULL ,
`complemento` VARCHAR(45) NULL ,
`bairro` VARCHAR(45) NOT NULL ,
`cep` VARCHAR(45) NOT NULL ,
`estado` VARCHAR(45) NOT NULL ,
`habilitacao` VARCHAR(45) NOT NULL ,
`registro` VARCHAR(45) NOT NULL ,
`validade` Date NOT NULL ,
`passaporte` VARCHAR(45) NULL ,
`dataNasc` date NOT NULL ,
`estadoEmissor` VARCHAR(45) NOT NULL ,
`sexo` VARCHAR(45) NOT NULL ,
`estrangeiro` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`codigo`) ,
UNIQUE INDEX `codigo_UNIQUE` (`codigo` ASC)
)ENGINE = InnoDB;
//ITEM LOCAÇÃO
CREATE TABLE `locadora`.`itemPedido` (
`codigo` INT NOT NULL AUTO_INCREMENT ,
`idVeiculo` INT NOT NULL ,
`idPedido` INT NOT NULL ,
PRIMARY KEY (`codigo`) ,
INDEX `idPedido` (`codigo` ASC) ,
CONSTRAINT `idPedido`
FOREIGN KEY (`codigo` )
REFERENCES `locadora`.`locacao`(`codigo` )
CONSTRAINT `idVeiculo`
FOREIGN KEY (`codigo` )
REFERENCES `locadora`.`veiculo`(`codigo` )
);
//VEICULO
CREATE TABLE `locadora`.`veiculo` (
`codigo` INT NOT NULL AUTO_INCREMENT ,
`fabricante` VARCHAR(45) NOT NULL ,
`placa` VARCHAR(45) NOT NULL ,
`cidade` VARCHAR(45) NOT NULL ,
`km` INT(10) NOT NULL ,
`modelo` VARCHAR(45) NOT NULL ,
`chassi` VARCHAR(45) NOT NULL ,
`portas` VARCHAR(45) NOT NULL ,
`estado` VARCHAR(45) NOT NULL ,
`grupo` VARCHAR(45) NOT NULL ,
`ano` INT(4) NOT NULL ,
PRIMARY KEY (`codigo`) ,
UNIQUE INDEX `codigo_UNIQUE` (`codigo` ASC)
)
//LOCAÇÃO
CREATE TABLE `locadora`.`locacao` (
`codigo` INT NOT NULL,
`dataDevolucao` DATE NOT NULL ,
`dataRetirada` DATE NOT NULL ,
`horaRetirada` VARCHAR(45) NOT NULL ,
`horaDevolucao` VARCHAR(45) NOT NULL ,
`navegadorGps` VARCHAR(45) NOT NULL ,
`cadeiraBebe` VARCHAR(45) NOT NULL ,
`motorista` VARCHAR(45) NOT NULL ,
`taxa` VARCHAR(45) NOT NULL ,
`clienteLocacao` VARCHAR(45) NOT NULL ,
PRIMARY KEY (`codigo`) ,
INDEX `clienteLocacao` (`codigo` ASC) ,
CONSTRAINT `clienteLocacao`
FOREIGN KEY (`codigo` )
REFERENCES `locadora`.`clientepf` (`codigo` )
ON DELETE CASCADE
ON UPDATE CASCADE)
Eu entendo que na locação podem existeir mais de 1 item de locação(veiculo) porém eu não sei como isso será feito quando eu der o comando "salvar locação". O que eu tenho que setar aonde no banco.
Não sei se deu pra entender bem minha dúvida =/