Bom, minha dúvida é mais sobre conceitos em geral de bancos de dados...
Estou criando um programa que modela o fluxo de matérias de uma universidade. Ele utiliza um banco de dados que, entre outras coisas, possui todas as disciplinas por departamento dessa universidade. Como vocês devem saber, em qualquer universidade, algumas disciplinas possuem pré-requisitos e não podem ser cursadas se os pré-requisitos não forem cursados antes.
Meu problema é justamente esse: apesar de saber que nenhuma disciplina na universidade tem mais que 4 pré-requisitos (imediatamente anteriores), imagino que é um extremo desperdício de espaço criar, por exemplo, 4 campos na tabela destinados a pré-requisitos se uma boa parte das disciplinas não tem pré-requisitos ou tem menos de 4.
E mais... extrapolando um pouco, e se surgissem disciplinas com mais de 4 pré-requisitos? E se, em vez de uma universidade eu estivesse, por exemplo, modelando sistemas do tipo tiular-dependente em que podem haver inúmeros dependentes? A diferença no meu problema é, naturalmente, que uma disciplina pode ser pré-requisito para várias outras bem como ter vários pré-requisitos.
Minha dúvida é: como resolver problemas desse tipo, em que não se sabe ao certo quantos subordinados existem para um elemento principal e é necessário fazer referências a todos os elementos subordinados bem como um elemento principal também pode ser subordinado?
Obrigado!
Dúvida Em Conceitos
Started By
pdform
, 01/09/2006, 11:36
1 reply to this topic
#1 pdform
Posted 01/09/2006, 11:36
#2
Posted 02/09/2006, 11:37
faz uma tabela de disciplina e outra tabela por exempli disciplina pra reuquisitos, esta disciplia pre requisitos recebe como chave estrangeira dois códigos um da disciplina em questão, e outra da disciplina que é pre requisito dai ficaria assim:
e para cursar programação, ela deve cursar, logica e algoritmos
modele certinho as tabelas, com as constraints corretas a fim de preservar a consistencia dos dados
o banco do setor que eu trabalho (que é uma universidade) funciona assim:
no exemplo pra a pessoa cursar sistemas operacionais ela deve antes cursar linguagens formaisDISCIPLINA
COD_DISCIPLINA|DISCIPLINA
1|Algoritmos
2|lógica
3|programaçao
5|linguagens formais
6|compiladores
DISCIPLINA_REQUISITOS
COD_DISCIPLINA|COD_DISCIPLINA_REQUISITO
3|1
3|2
6|5
e para cursar programação, ela deve cursar, logica e algoritmos
modele certinho as tabelas, com as constraints corretas a fim de preservar a consistencia dos dados
o banco do setor que eu trabalho (que é uma universidade) funciona assim:
- Desenvolvedor Python/ZOPE/Plone + ArchGenXML/Poseidon - Python + Django na Universidade de Caxias do Sul
- Desenvolvedor Python + Django na World News
Blog
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)