Boa tarde.
Bem como é meu primeiro post não sei bem onde postar a dúvida, por isso vim aqui.
Estou fazendo um sistema para uma matéria, de gestão de eventos, porém o que ta pegando mais que tudo pra mim é projetar as classes
Aí ta um esboço que fiz, não entendi bem porque tem q ter esses tipoDe, uam recomendação do professor
Também não consegui pensar em como na inscrição de cada aluno por todas as atividades do evento que ele participa
Como posso fazer isso?
Desculpe pela bagunça, mas é o que o tempo permitiu:
Esse jeito parece funcionar tranquilo. Deve ter muitas formas de fazer, então ai vai o que pensei:
esses “tipoDe” que vc tá falando é onde eu coloquei a interrogação?
Isso é o tipo pessoa fisica, juridica ou significa palestrante ou aluno?
possivelmente ele deve ter separado de pessoa porque o sistema poderá crescer em outro campo apartir dai.
Nesse caso não misturaria com as variavies de pessoa.
Se o tipo pessoa ai na interrogacao fosse pra dizer palestrante ou aluno, eu colocaria a chave extrangeira de tipoPessoa na classe pessoa e eliminaria as classes palestrantes e alunos.
Opa, obrigado pro responder !
-Bem, o tipo de pessoa seria aluno ou professor, mas aí teria que quebrar isso emuma classe especifica pra cada né, pois tem informações próprias de cada um.
-No tipo de equipamento, não poderia ser apenas um atributo de equipamento com a descrição(ou nome) do equipamento?
Você sugeriu o horário já sendo uma tributo de Evento? - Mas como pensei ume vento pode ser de vários dias por exemplo, e num evento acontecem várias atividades, e as atividades vão ser eh horários específicos, exemplo uam feira de ciencias como evento, ai das 8 as 10 da manha tem a atividade apresentação da turma A na sala A, e das 14 as 16 exposição de arte na salsa B. Aí o horário tem q ficar a parte, ou não precisa?
-Esse RH e secretaria seriam classes?
Então a classe pessoa se liga direto com a matricula (inves de atividade como fiz) e entre elas uam classe com o id do evento e do aluno, é isso?
Mas ainda não entendi como lidar com as informações de todas as atividaes que o aluno vai participar dentro de um evento e amarrar isso com a matrícula
valeu =)
Olha em vermelho onde vc poderia por uma tabela
auxiliar que vou chamar de “Relacionamento”. Ela vai servir de ponte.
É aqui que o Aluno (ou Secretaria: Dependendo das restrições que queira impor) vai ligar cada um dos eventos aos quais cada aluno está inscrito.
Para selecionar esses eventos deve ter na sua classe de negócio uma metodo de acesso ao banco de dados do tipo:
PegueGradeDo(data_inicio_procura, data_inicio_fim, idPess)
{
// Hibernate, JPA, IBATIS, JDBC…
return “Selecione na tabela Eventos todos os eventos cadastrados estejam entre data_inicio_procura, data_fim_procura e que são do usuario idPess”
}
Esse sistema ai ser pra utilizar web ou desktop. Vai ter n formas para manter o usuario logado.
Note que o idPess poderá ser alterado ou não, dependendo do tipo de pessoa que tiver logada.
Essa já é uma parte da camada de sessões do usuario. Já tem idéia de com vai fazer?
Para atualizar a datainicio e a datafim, poderia ser utilizando triguer.
Não entendi o que vc quisis dizer com os Equipamentos.
"Mas ainda não entendi como lidar com as informações de todas as atividaes que o aluno vai participar dentro de um evento e amarrar isso com a matrícula "
Então vc não precisa de idPessoa. Vc só precisa de idMatricula para fazer esses relacionamentos.
O que determina se é aluno ou palestrante são determinados por idtipopess
Bem, eu uso o Astah, do pouco que conheço, ele é o melhor, faz diagramas mais bonitos visualmente, é mais simples e intuitivo e tem amis funções
aí o link, o astah community é free http://astah.net/
Aproveitando o topico de voces, qual sistema voces costumam usar para gerar estes diagramas?
abraço[/quote]
Hehehe.
Normalmente uso papel, lápiz e borracha.
Pois que eu defino o projeto que eu tento passar pro programa.
Passar demora muito então pouco tempo no papel.
Se não me engano no visual studio vem com uma ferramenta para isso.
Eu conheo o ArgosUML, em java.
[quote=douglaskd]ainda nao aprendi modelagem de classes…
eu começo a modelar as classes após fazer o MER do BD, há alguma relação entre os dois…algum reaproveitamento ?
qual a diferença principal entre essas modelagens?[/quote]
Sim. Uma mostra a estrutura do manco e a outra a estrutura das classes de negócio(Classes responsaveis por como os dados devem ser trabalhados) e as classes de objeto (dados que trafegam)
Eu também costumo iniciar pelo banco de dados, mas também tento pesar no trabalho que a forma como eu vou programar na camada de negócio pois se ficar ser complicada de mais, as vezes vale apena trocar 5% de performance para poupar 80% de codificação. Facilitando em uma possivel manutenção.
Assim?
Tirei o tipoDePessoa e coloquei duas classes distintas, pq cada um tem os atributos específicos.
Essa classe auxiliar entre pessoa e inscrição não poderia ser substituida por uma tributo em inscrição com o id do evento? Ai na inscrição teria a pessoa, a atividade e o evento, assim pra buscar os eventos de cada pessoa ou as pessoas em cada evento poderia pegar da inscrição, daria certo assim?
E a classe particiante e palestrante, terias como atributos o que?
Então, o trabalho é da matéria Gewrenciamento de Dados para Web, e o foco dele é JDBC, por isso é exigido ter niveis de acesso, mas estou querendo desenvolver tudo isso, todas as etapas do projeto, após entregar essa primeira forma aí.
Obrigado
Não costumo dizer que um modelo de dados esteja “certo” ou “errado”.
Isso vai depender de várias coisas, do que vc quer, de como vai fazer a codificação, do numero de pessoal disponivel para o projeto…
No desenho eu coloquei entre vermelho os equivalentes hierarquicos. Acho que não precisamos discutir sobre os 4. Só 2 seriam suficientes pois o funcionamento seria o mesmo. Os atributos que vc está querendo colocar aqui é vc quem deve decidir. Eu poderia achar neessario colocar que o usuario precisa de rampa, porque é cadeirante. talvez vc não precise, pois seu estabelecimento já permite liver locomoção.
Poderia por também uma chave estrangeira para uma tabela sobre custos, pagamentos, etc, mas eu não me preocuparia com isso agora. Se vc quiser colocar isso, poderá colocar mais tarde depois que seu modulo fnanceiro estiver pronto.
Depois desse ultimo desenho seu eu fiquei com algumas dúvidas:
O aluno (ou o participante) pode estar cadastrado para ver um evento, mas não precisa estar cadastrado para uma atividade do evento?
Eu tava pensando que se o aluno tiver cadastrado em um evento, ele teria que participar de todas as atividades de um evento.
Seria isso que vc quer? Lembrar que se o aluno tiver cadastrado em um evento, ele não deveria conseguir se cadastrar em eventos com atividades (aulas) dando choque de grade. Será um trabalho para o SQL resolver antes de aceitar inscrição do usuario.
Bem, a forma como pensei é assim: Um evento tem várias atividades, um participante pode fazer quantas atvidades do evento ele quiser, se os horários derem certo, exemplo uma semana academica de computação seria o evento, e cada minicurso e palestra uma atividade, um aluno cadastra na atividade A, que é segunda das 14 ás 18, e na atividade C que é terça das 19 as 22. Portanto teria que ter uma inscrição no evento e uma inscrição na atividade né, como representaria isso no diagrama?
Certo, farei as modificações!
Agora mais uma dúvida, estou apssando as classes para o MER, tudo bonitinho no postgre, mas e quanto às classes java? Seria uma classe para cada classe do diagrama?
Isso vai depender mais do que quer trafegar pela internete do que das classes de seu modelo.
É na camada de negócios é que se determina qual e como os atributos irão trafegar.
Comumente o pessoal utiliza Hibernate e(ou) JPA. Que permitem até a engenharia reversa.
Outros JDBC e DAO.
Existem muitos outros Orms.