Relacionamento de tabelas em Mysql 1:1 e 1:n
Boa tarde galera!
Então, tava estudando um pouco de mysql, e fiquei em duvida em relacionamento de tabelas.
Como diferenciar uma relação de 1:1 e 1:n.
Criei essas duas relações usando o diagrama do workbench, e depois dei um forward engineer para analisar o código, e não notei nenhuma diferença entre as duas relações.
Relação de 1:1
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`pessoa` (
`pessoa` INT NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(45) NULL,
PRIMARY KEY (`pessoa`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table mydb.documento
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`documento` (
`iddocumento` INT NOT NULL AUTO_INCREMENT,
`numerodoc` VARCHAR(45) NULL,
`pessoa_pessoa` INT NOT NULL,
PRIMARY KEY (`iddocumento`),
INDEX `fk_documento_pessoa_idx` (`pessoa_pessoa` ASC),
CONSTRAINT `fk_documento_pessoa`
FOREIGN KEY (`pessoa_pessoa`)
REFERENCES `mydb`.`pessoa` (`pessoa`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
Relação de 1:n
CREATE TABLE IF NOT EXISTS `mydb`.`animal` (
`idanimal` INT NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(45) NULL,
PRIMARY KEY (`idanimal`))
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table mydb.cartao
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `mydb`.`cartao` (
`idcartao` INT NOT NULL AUTO_INCREMENT,
`numcartao` VARCHAR(45) NULL,
`animal_idanimal` INT NOT NULL,
PRIMARY KEY (`idcartao`),
INDEX `fk_cartao_animal1_idx` (`animal_idanimal` ASC),
CONSTRAINT `fk_cartao_animal1`
FOREIGN KEY (`animal_idanimal`)
REFERENCES `mydb`.`animal` (`idanimal`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;Discussão (1)
Carregando comentários...