Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafasemed

como criar relação

Recommended Posts

gostaria de como criar relacionamento uma tabela minha :

 

tenho duas tabela uma que tem o nome de escola e a outra com o nome de monitor

 

 

tenho varias escolas e em cada escola posso ter varios monitores vou postar a tabela ara que vcs possam ver gostária de relacionar elas para quando eu fizer uma consulta tenha a escola e os monitores que tem na escola:

 

 

tabela escola

 

CREATE TABLE `banco`.`escola` (

`id_escola` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`nome` VARCHAR( 30 ) NOT NULL ,

`end` VARCHAR( 40 ) NOT NULL ,

`bairro` VARCHAR( 30 ) NOT NULL ,

`telefone` VARCHAR( 20 ) NOT NULL ,

`diretor` VARCHAR( 50 ) NOT NULL ,

`email` VARCHAR( 30 ) NOT NULL ,

`setor` VARCHAR( 20 ) NOT NULL

) ENGINE = InnoDB

 

 

 

tebela monitor

 

 

CREATE TABLE `banco`.`monitor` (

`id_monitor` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,

`nome` VARCHAR( 50 ) NOT NULL ,

`end` VARCHAR( 80 ) NOT NULL ,

`bairro` VARCHAR( 40 ) NOT NULL ,

`telefone` VARCHAR( 40 ) NOT NULL ,

`escola` INT( 80 ) NOT NULL ,

`email` INT( 60 ) NOT NULL

) ENGINE = InnoDB

 

 

 

como faço a relação entre elas ? sendo que cada escola pode ter varios monitores , tenh que criar outra tebela para fazer a relação ? como funciona isso ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

essa é uma relação conhecida como N:N (muitos para muitos)

 

você tem que criar a tabela do "meio", mais ou menos assim:

 

CREATE TABLE  `escola_monitor` (
  `id_escola` INT NOT NULL,
  `id_monitor` INT NOT NULL,
  PRIMARY KEY  (`id_escola`,`id_monitor`),
  CONSTRAINT `fk_escola_id` FOREIGN KEY (`id_escola`) REFERENCES `escola` (`id_escola`),
  CONSTRAINT `fk_monitor_id` FOREIGN KEY (`id_monitor`) REFERENCES `monitor` (`id_monitor`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE=InnoDB

Lembrando que a engine MyISAM não suporta chaves estrangeiras (foreign key)

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok eu so preciso dessa terceira tabela para criar essa relação que eu quero ?

 

eu estou usando o innoDB issa tabela que vai fazer o relacionamento ???

 

 

 

p lance é o seguinte no campo escola da tabela minitor tem que aver a ligação com a tebela escola.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok eu so preciso dessa terceira tabela para criar essa relação que eu quero ?

 

eu estou usando o innoDB issa tabela que vai fazer o relacionamento ???

 

 

 

p lance é o seguinte no campo escola da tabela minitor tem que aver a ligação com a tebela escola.

 

eu tenho uma tabela parecida mais não vejo como fazer o relacionamento

 

 

CREATE TABLE `banco`.`escola_monitor` (`id_relacionamento` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,`id_escola` INT(255) NOT NULL ,`id_monitor` INT(255) NOT NULL) ENGINE = InnoDB

Compartilhar este post


Link para o post
Compartilhar em outros sites

sendo que cada escola pode ter varios monitores , tenh que criar outra tebela para fazer a relação ? como funciona isso ?

 

Cada escola pode ter vários monitores, mas cada monitor pertence à uma única escola, correto?

 

Então é uma relação 1:N acredito eu.

Então, basta você adicionar um campo:

id_escola na tabela de monitores.

 

@rafasemed devido a particularidade dos bancos, é mais interessante que você crie um tópico com a sua dúvida.

Já postando o schema das suas tabelas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

sendo que cada escola pode ter varios monitores , tenh que criar outra tebela para fazer a relação ? como funciona isso ?

 

Cada escola pode ter vários monitores, mas cada monitor pertence à uma única escola, correto?

 

Então é uma relação 1:N acredito eu.

Então, basta você adicionar um campo:

id_escola na tabela de monitores.

 

@rafasemed devido a particularidade dos bancos, é mais interessante que você crie um tópico com a sua dúvida.

Já postando o schema das suas tabelas.

 

quais tipos de relacionamento que existem ?

 

gostaria mesmo de saber mais sobre o assunto

 

no meu caso é só eu criar um campo id_escola na tabela monitor que o relacionamento vai esta criado? e que tipo de varialvel devo usar ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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