Ir para conteúdo

POWERED BY:

Arquivado

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

Daniel Filho

chaves primárias e estrangeiras

Recommended Posts

Bom, vim pertubar vocês um pouquinho aqui!

 

Não sei se está na área certa, mas penso que tanto aqui

como na área de modelagem de banco de dados minha dúvida

se encaixa!

 

Seguinte, a dúvida da vez é: utlização de chaves

primárias e estrangeiras.

 

Vamos lá!

 

Estou criando um sistema escolar, e já adiantando

o dominio que eu penseo que terei que ter para

pensar melhor na modelagem do banco, estou com

algumas coisas na cabeça.

 

O sistema é mais ou menos assim (exemplificando):

ficha de matricula, historico escolar e boletim escolar.

 

Pois bem, para isso, digamos que eu crie tres tabelas,

sendo elas: ficha_de_matricula, historico_escolar e

boletim_escolar. Sendo "ficha_de_matricula" já a

tabela com os campos necessários para exibir a ficha

em si, para a impressão.

 

Então, para a ficha de matricula, para o historico escolar

e o boletim, existe um campo que será comum a todos "Nome do

Aluno" e que eu quera que seja inserido apenas uma vez, através

da Ficha de Matrícula. Logo, crei na tabela "ficha_de_matricula"

um campo para id_do_aluno (na forma SERIAL) e outro para

nome_do_aluno. Defini este dois campos como chaves primárias

(não sei se isto será útil).

 

Ou seja, quero que o campo nome_do_aluno seja exibido sempre o mesmo

na manipulação dos dados de um aluno, tanto para gerar o boletim,

como para gerar a ficha como para gerar o histórico. Li algo

sobre chaves estrangeiras, mas nao sei fazer!

 

Alguma luz!

 

Grato até aqui!

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei se eu entendi bem,

 

mas me parece errado criar uma chave primária composta (id, nome)

 

creio que o certo seria

 

tbl aluno

----------

id_aluno PK

nome

 

ficha_de_matricula

------------------

id_ficha PK

id_aluno FK

 

historico_escolar

-----------------

id_historico PK

id_aluno FK

 

boletim_escolar

---------------

id_boletim PK

id_aluno

 

onde

pk = chave primária

fk = chave estrangeira

 

assim você não precisa repetir o nome do aluno nas tabelas.. e consegue relacionar o aluno com os outros dados..

consulte sobre NORMALIZAÇÃO DE BANCO DE DADOS, chaves primárias e estrangeiras

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow, beleza!

 

Creio que está seja a última dúvida: se eu definir FK para id_aluno na ficha_de_matricula, ele automaticamente ira pegar os dados inseridos em id_aluno que é uma PK em aluno?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, não é obtido automáticamente não. O que é possível, é você obter o id_aluno sendo ele auto_increment, após o insert naquela tabela na sessão atual, e posteriormente usar tal valor em um INSERT na tabela ficha_de_matricula, se é o que está pensando em fazer.

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.