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?
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.
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).
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.
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.