rafasemed 0 Denunciar post Postado Novembro 24, 2009 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
Lucas Renan 2 Denunciar post Postado Novembro 24, 2009 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
rafasemed 0 Denunciar post Postado Novembro 24, 2009 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
rafasemed 0 Denunciar post Postado Novembro 24, 2009 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
William Bruno 1501 Denunciar post Postado Novembro 25, 2009 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
rafasemed 0 Denunciar post Postado Novembro 26, 2009 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