Como definir as entidades corretamente num determinado cenário

Olá pessoal,

Meu cenário é o seguinte: Eu tenho uma TURMA de ALUNOS, esta turma faz um CURSO, como numa universidade, um curso de Engenharia por exemplo. Este curso possui MATERIAS e DISCIPLINAS. A imagem abaixo ilustra o modelo.

Se por acaso eu precisar recuperar as Disciplinas que um aluno está cursando, eu recupero a turma do aluno que possui o curso e consequentemente a lista de disciplinas. Blz.

Agora vamos dizer que a Disciplina tenha um atributo chamado Duração. A duração é medida em horas e é referente a duração que cada turma leva para cursar a disciplina, ou seja, a duração se refere a cada turma. Como eu modelaria isso? Criaria um novo atributo em Disciplina? ou criaria uma nova entidade Duração que iria conter a turma e a disciplina?

O que vocês acham?

Qual a diferença entre matéria e disciplina?

Geralmente numa universidade, um curso possui disciplinas, as disciplinas possuem turmas, e cada turma tem o seus horários semanais, suas salas, e semestre que lecionado a disciplina para a turma.

Edit: Os alunos pertencem à universidade, e suas matrículas aos cursos.
Edit 2: Um aluno não é obrigado a cursar disciplinas somente do seu curso.

Aqui matéria é como se fosse um conjunto de disciplinas, certe para agrupar assunto comuns. Um exemplo seria Matemática como uma Matéria e geometria, algebra, etc como disciplinas.

Mas acho que isso não interfere no problema né.

Uma determinada turma faz uma disciplina em 30 horas, mas uma outra turma fará a mesma disciplina em 45 horas. Como trato isso?

[quote=mvurban]Aqui matéria é como se fosse um conjunto de disciplinas, certe para agrupar assunto comuns. Um exemplo seria Matemática como uma Matéria e geometria, algebra, etc como disciplinas.

Mas acho que isso não interfere no problema né.[/quote]Agrupar por agrupar só atrapalha na verdade

Não sei quanto ao seu modelo, mas uma disciplina pode ter diversas turmas, esse dado ficaria guardado do lado da turma.

[quote=Bruno Laturner][quote=mvurban]Aqui matéria é como se fosse um conjunto de disciplinas, certe para agrupar assunto comuns. Um exemplo seria Matemática como uma Matéria e geometria, algebra, etc como disciplinas.

Mas acho que isso não interfere no problema né.[/quote]Agrupar por agrupar só atrapalha na verdade[/quote]
Isso é um requisito do projeto, não é agrupar por agrupar. Terei relatórios, e usos especícos para isso, se tá alí é pq vai ser usado.

Não sei quanto ao seu modelo, mas uma disciplina pode ter diversas turmas, esse dado ficaria guardado do lado da turma.[/quote]
A disciplina não tem turmas, aqui a turma faz um curso que por sua vez possui disciplinas. No final das contas a turma faz as disciplinas do curso e uma disciplina pode ser cursada por muitas turmas.

Mas a questão que eu gostaria de discutir não é o modelo em si, mais sim a forma como eu abordaria um requisito específico, que é a questão da duração da disciplina em cada turma, mencionada no meu primeiro post.

Obrigado a todos.

Uma turma pode cursar várias disciplinas, e uma disciplina pode ser cursada por várias turmas?

A duração ficaria guardada nesse relacionamento, que é uma nova tabela.

Só acho estranho que as disciplinas são cursadas por turmas, e não pelos alunos. Já pensou o que acontecerá se um aluno sair dessa turma e ir para outra?

É bem possível que sua modelagem precise de alguns ajustes.

Não sei como funciona essa universidade, mas na maioria delas, o aluno está matriculado a várias matérias/disciplinas. Neste caso, você teria que criar uma associação que represente isso.

Outra coisa importante pra arrumar é a relação entre matérias e cursos, já que existem matérias que servem para vários cursos (e.g português, adm, matemática básica). Existem algumas soluções para isso. Uma delas seria não associar a matéria diretamente ao curso, mas sim a uma grade do curso. Desa forma, a mema matéria poderia figurar em mais de um curso (o que normalmente acontece).

Olá Pessoal,

Obrigado pelas respostas. Vamos lá:

sim. As várias disciplinas formam o curso como um todo. E um curso poderá ser cursado por várias turmas.

Boa observação. No meu cenário isso não será possível, se o aluno quiser mudar de turma ele encerra uma turma e entra em uma nova, começando do zero. É pra ser assim. É um cenário de educação a disctancia.

Uma questão que acho que não ficou clara, o esquema que eu mostrei no primeiro post não é o esquema de tabelas e sim de objetos.

O curso terá um conjunto de Matérias, se é a mesma de outro curso não importa, o que importa é que ela possui um conjunto de matérias. Lembrando, o esquema é de objetos, ainda não cheguei na elaboração do banco.

Como disse ainda não tenho tabelas, estou pensando a nível de objetos.

vlw a todos.

O curso terá um conjunto de Matérias, se é a mesma de outro curso não importa, o que importa é que ela possui um conjunto de matérias. Lembrando, o esquema é de objetos, ainda não cheguei na elaboração do banco. [/quote]
Já que é assim a associação não deveria ser bi-direcional como está representado, certo?

Isso mesmo, na verdade o grafico do relacionamento dos objetos seria assim:

Desculpem.

Vocês tão sacando qual a minha dificuldade? Eu tenho problemas em representar relacionamentos com várias entidades.

Por exemplo vou ter uma entidade chamada tarefa (Que é uma atividade que o aluno faz) acho q neste modelo uma tarefa vai ter uma disciplina, um curso, uma turma e um aluno. Para que eu possa saber que foi aquele aluno que fez aquela tarefa daquela disciplina naquele curso. E consequentemente o aluno vai ter um conjunto de tarefas.

Seria isso?