Ir para conteúdo

POWERED BY:

Arquivado

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

Pedroplay

[Resolvido] Sistema Acadêmico(Projeto Final de curso)

Recommended Posts

Estou no final do meu curso Técnico de Informática e meu grupo decidiu desenvolver um projeto final de um Sistema Acadêmico para a própria instituição. Sou responsável pelo Banco de Dados e estou com dúvidas sobre o mesmo.

 

Criei 4 tabelas no MySQl:

 

TABELA PROFESSOR

 

id_prof int primary key auto_increment

nome_prof varchar(255)

matricula int

 

 

TABELA DISCIPLINA

 

id_disc int primary key auto_increment

nome_disc varchar(255)

carga_horaria_total int

 

 

TABELA TURMA

 

id_turma int primary key auto_increment

numero_turma int

turno varchar(255)

qtd_alunos int

 

E uma tabela guardará todas as chaves primárias das tabelas anteriores referenciando cada uma. Ela servirá para fazer o vínculo entre que professor lecionará qual disciplina em cada turma.

 

TABELA PTD

 

id_prof int

id_disc int

id_turma int

 

Imaginei exibir os dados da seguinte forma:

 

Professor | Disciplina | Turma

José | UML | 201055

Marcos | C# | 201035

Roberto | Java | 201069

 

Como ficaria o select para exibir os dados dessa forma ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

amigo,

o mais correto seria você criar a tabela

 

diciplina com mais campos

 

PROFESSOR_ID

TURMA_ID

ambos com chave estrangeira nas tabelas, turma ID e professor ID

 

id_disc int primary key auto_increment

nome_disc varchar(255)

carga_horaria_total int

professor_id

turma_id

 

 

depois bastaria fazer a select

 


selec * from TURMA, PROFESSOR, DICIPLINA
WHERE  TURMA_ID = id_turma AND  id_prof = professor_id

 

desta forma ai poderia mostrar os dados na forma que você quer

sem a outra tabela TABELA PTD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi, vou ver se consigo fazer dessa forma. Mas ainda quero saber se existe algum recurso no MySQL que me possibilite apresentar os dados usando uma tabela única com todas as chaves primárias das outras tabelas.

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo , existe como fazer isso com certeza, de forma simples ainda


select * from TURMA as T, PROFESSOR as P, DICIPLINA as D, PTD 
WHERE  T.id_turma = PTD.id_turma AND 
P.id_prof = PTD.id_prof AND
D.id_disc = PTD.id_disc

desta forma ai, se você gravar os registros corretamente, vai exibir os dados como você quer da mesma forma

eu so acho desnecessario.

 

 

 

na PTD ainda precisa ter uma chave primaria pra ela, nao é obrigatorio, mais é o correto assim nao corre risco de repetir registros a toa

id_prof int

id_disc int

id_turma int

 

 

 

abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Adrianno, testei esse seu comando, e não funcionou. Consegui apresentar os dados usando o seguinte comando:

 

select professor.nome_prof, disciplina.nome_disc, turma.numero_turma from professor, disciplina, turma, ptd where 
professor.id_prof = ptd.id_prof and disciplina.id_disc = ptd.id_disc and turma.id_turma = ptd.id_turma ;

 

Agora o problema é fazer um select para mostrar as disciplinas e turmas que um professor está vinculado buscando pelo nome dele.

 

Abraço !

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.