Tabelas no banco

10 respostas
P

ola,
estou fazendo um programinha de matriculas mas não estou conseguindo resolver o seguinte problema:
tenho varias disciplinas e cada uma tem quantidades diferentes de modulos e cada modulo tem quantidades diferentes de disciplinas…alguem pode me ajudar a implementar estas tabelas no banco tipo não estou conseguindo fazer a relação entre elas.
tava pensando em algo assim:
[color=red] //tabela de disciplinas
[/color]
id|nome|modulo|ensino
| | |

[color=red] //tabela ensino
[/color]
id|tipo
|medio
|fund.

[color=red] //tabela modulo
[/color]
id|id_disciplina|modulo
| |

o problema é como eu faço para relaciona-las :!:
:lol:brigada

10 Respostas

J

De uma estudada em chave-estrangeira(foreign-key), deve servir ao que tu procura.
Fritei, depois que li com atenção.
Seu relacionamento é n-m, então tu vai precisar de uma tabela para relacionar as disciplinas com os modulos.

drsmachado

Cada disciplina possui vários módulos e cada módulo possui várias disciplinas…
Isso é um relacionamento m para n, ou seja, você precisará de uma outra tabela que relacione disciplina e módulo

P

voces poderiam me explicar melhor este relacionamento de m para n…tipo eu tenho que fazer outra tabela mais ou menos assim:
id|modulo|id_disciplina

???

bah desculpem a ignorancia mas não sei quase nada a respeito de banco de dados…
:Dbrigada

D

paty_trind:
voces poderiam me explicar melhor este relacionamento de m para n…tipo eu tenho que fazer outra tabela mais ou menos assim:
id|modulo|id_disciplina

???

bah desculpem a ignorancia mas não sei quase nada a respeito de banco de dados…
:Dbrigada

Isso mesmo.

marcelo.bellissimo

Isso se chama “tabela associativa” e no caso nem precisa ter um ID, basta apenas referenciar as chaves de cada uma das tabelas envolvidas…

P

Gente eu entendi esta lógica mas ainda não sei como aplicar isto.
Tipo eu sei muito pouco sobre banco de dados :oops:
poderias me explicar mais a respeito disto?
bom segue em anexo o desenho das tabelas e obrigada pela ajuda!

P

Marcelo
pode me explicar mais sobre tabelas associativas?
:oops:brigada

marcelo.bellissimo

paty_trind:
Marcelo
pode me explicar mais sobre tabelas associativas?
:oops:brigada

Não tem segredo… suponha que temos um ALUNO que curse uma ou várias MATERIA’s… o ALUNO cursa ‘n’ matérias, assim como a MATERIA é cursada por ‘n’ alunos… é o que chamamos de relacionamento muitos-pra-muitos, onde os dois lados podem referenciar ‘n’ itens entre sí…

Exemplo:
João cursa matemática, portugues e inglês…
Maria cursa matemática e portugues…
César cursa portugues e inglês…

Temos as ‘entidades’, tabelas que representam um objeto único:
ALUNO
João
Maria
Cesar

MATERIA
Matemática
Português
Inglês

Temos a tabela associativa:
ALUNO_MATERIA
João | Matemática
João | Português
João | Inglês
Maria | Matemática
Maria | Português
Cesar | Português
Cesar | Inglês

Se eu fizer um SELECT, algo do tipo “SELECT materia from ALUNO_MATERIA where aluno = ‘João’”, terei apenas as matérias que são cursadas pelo João:
Matemática
Português
Inglês

Se eu fizer o inverso, SELECT aluno from ALUNO_MATERIA where materia = 'Matemática", terei os alunos que cursam matemática:
João
Maria

Basicamente serve pra isso, então você vê que essa tabela não precisa nem ter um ID, pois ela não representa uma “entidade”, não é um registro único de algum objeto do seu sistema, é apenas uma associação entre eles…

O que você pode fazer nessa tabela é criar uma restrição de unicidade (Unique Constraint), pra garantir que não se repitam os valores, por exemplo:
Joâo | Matemática
Joâo | Matemática

Óbvio né? Não precisa cadastrar duas vezes a mesma coisa…

Acho que deu pra entender… se ficou dúvida, grita aí!

drsmachado

Há 3 tipos (básicos) de relacionamentos entre tabelas de bancos de dados:
1 - 1 para 1
2 - 1 para n
3 - m para n

As relações 1 para 1 e 1 para n são simples, pois a referência é direta.
Ex.: Uma pessoa pode ter apenas um CPF e um CPF pode pertencer a apenas uma pessoa (no mundo perfeito). Esta relação é 1 para 1

Uma mãe pode ter muitos filhos, mas cada filho só pode ser concebido por uma mãe. Este é um relacionamento 1 para n.

Agora,

Um carro pode pertencer a várias pessoas e uma pessoa pode ter vários carros. Este é um relacionamento m para n, pois somente pela chave primária do Corsa e do João não é possível saber se um e outro estão relacionados.
Aí entra a tabela pessoa_carro, que diz que o João possui um Corsa e que o João também tem um Clio.

Esta é a lógica…

P

Marcelo e DrsMachado
bah obrigada pelas explicações agora eu entendi!
:lol: :lol:
obrigada

Criado 24 de novembro de 2010
Ultima resposta 25 de nov. de 2010
Respostas 10
Participantes 5