Tabelas no banco

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

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.

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

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

[quote=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[/quote]

Isso mesmo.

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

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!

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

[quote=paty_trind]Marcelo
pode me explicar mais sobre tabelas associativas?
:oops:brigada[/quote]

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í!

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…

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