Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Relacionamento


Guest Hilario

Pergunta

Boa tarde!

Galera eu tou usando o mysql como banco de dados.

Eu estou tendo problemas com duas tabelas aqui, é o seguinte, eu tenho uma tabela curso, e essa tabela esta relacioanda com uma tabela disciplina, Tenho um tabela professor tambem.

Esse professor ele leciona em algum curso, porem ele pode dar aulas em varias disciplinas desse curso. alguém poderia me dar uma luz de como fazer isso e manter a integridade do banco.

Agradeço a atenção.

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Boa tarde!

Galera eu tou usando o mysql como banco de dados.

Eu estou tendo problemas com duas tabelas aqui, é o seguinte, eu tenho uma tabela curso, e essa tabela esta relacioanda com uma tabela disciplina, Tenho um tabela professor tambem.

Esse professor ele leciona em algum curso, porem ele pode dar aulas em varias disciplinas desse curso. alguém poderia me dar uma luz de como fazer isso e manter a integridade do banco.

Agradeço a atenção.

Oi, Hilário!

A forma mais correta de montar este modelo é através de uma ligação ternária. Ou seja Você precisa de uma tabela extra que será o relacionamento entre Curso x Disciplina e Professor que neste exemplo vou chamar de RL_CURDISCPROF e conterá os atributos de identificação de Curso, Disciplina e Professor respectivamente. Não terá chave primária somente Foreign Keys com constraints para as tabelas de cadastro.

CREATE TABLE RL_CURDISCPROF (
   id_curso integer unsigned not null
   id_disciplina integer unsigned not null,
   id_professor integer unsigned not null
);
ALTER TABLE RL_CURDISCPROF
   ADD CONSTRAINT FK_CURDISCPROF_001 FOREIGN KEY (id_curso) REFERENCES curso(id_curso) ON DELETE NO ACTION, ON UPDATE NO ACTION, 
   ADD CONSTRAINT FK_CURDISCPROF_002 FOREIGN KEY (id_disciplina) REFERENCES disciplina(id_disciplina) ON DELETE NO ACTION, ON UPDATE NO ACTION, 
   ADD CONSTRAINT FK_CURDISCPROF_003 FOREIGN KEY (id_processor) REFERENCES professor(id_professor) ON DELETE NO ACTION, ON UPDATE NO ACTION
;

Com isso, você saberá que professor está em que disciplina de que curso e vice versa.

NOTA: Esta solução trabalha muito bem com tabelas tipo Innodb. Com tabelas tipo MyISAM somente as constraints não funcionarão.

Caso esta solução não resolva seu problema pooste novamente e avaliaremos melhor.

att

Denis Courcy

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...