Jump to content


Dúvida Em Conceitos


  • Faça o login para participar
1 reply to this topic

#1 pdform

pdform
  • Visitantes

Posted 01/09/2006, 11:36

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!

#2 Petry

Petry

    Veterano

  • Usuários
  • 1132 posts
  • Sexo:Masculino
  • Localidade:Caxias do Sul - RS
  • Interesses:- desenvolvimento WEB<br />- websemântica<br />- microformatos

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:

DISCIPLINA
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

no exemplo pra a pessoa cursar sistemas operacionais ela deve antes cursar linguagens formais
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:

Posted Image

- Desenvolvedor Python/ZOPE/Plone + ArchGenXML/Poseidon - Python + Django na Universidade de Caxias do Sul
- Desenvolvedor Python + Django na World News

Blog




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq