Bom galera, estou com a seguinte dúvida:
- Uma tarefa (estilo helpdesk) tem os seguintes estados: à iniciar, em andamento, interrompido, concluído.
DER
Fiquei com dúvida no seguinte. Nesse modelo, o que me impede de ter duas instancias para a mesma tarefa? uma referente a TarefaAndamento e outra a TarefaConcluida?
Tendo esta possibilidade, o conceito estaria errado, pois uma tarefa em andamento não está concluída e vice-versa.
Este modelo foi baseado no livro "Análise e Projeto de Sistemas de Informação Orientados a Objeto" de autor "Raul Sidnei Wazlawick".
E outra dúvida é, quero ter registrado os momentos em que a tarefa muda de status.
DER
Seguindo este mesmo modelo, eu fiz desta forma, estaria correto?
Estado Da Tarefa.
Started By marciovmartins, 27/06/2008, 19:06
4 replies to this topic
#1
Posted 27/06/2008, 19:06
#2
Posted 27/06/2008, 20:41
Em modelagem é difícil dizer o que está certo e o que está errado! Pois se atende, está certo!
O que dá pra dizer é o que funciona melhor... e então: porque você não concentra todas as alterações de status na mesma entidade?
Tarefa
-------
id_tarefa
ultimo_status
[...]
Tarefa_andamento
---------------------
id_tarefa_andamento
id_tarefa
id_status
id_usuario
dt_status
Status
-------
id_status
descricao
O que dá pra dizer é o que funciona melhor... e então: porque você não concentra todas as alterações de status na mesma entidade?
Tarefa
-------
id_tarefa
ultimo_status
[...]
Tarefa_andamento
---------------------
id_tarefa_andamento
id_tarefa
id_status
id_usuario
dt_status
Status
-------
id_status
descricao
#3
Posted 27/06/2008, 23:25
Colocando a cachola aqui pra funcionar eu entendi melhor. Esse é um modelo conceitual, isto é, não significa que todas as entidades aí propostas virarão uma tabela no banco de dados. Esta é uma forma para o analista entender como funcionará o procedimento antes da programação e BD.
No primeiro modelo que eu apresentei as entidades "TarefaAndamento" e "TarefaConcluida" herdam o valor da classe abstrata "EstadoDaTarefa", desta forma é como "Tarefa" esteja ligado diretamente a "TarefaAndamento" e "TarefaConcluida". Mas como temos uma ligação 1-1 entre "EstadoDaTarefa" e "Tarefa", significa que ou a tarefa está "em andamento" ou está "concluída", de acordo com qual entidade está associada primeiro.
Não sei se me fiz entender. Mas como falei anteriormente, é um modelo conceitual e, segundo o livro, as entidades abstratas não são transformadas em tabelas.
Gostei muito desta forma de modelar, só que não sei como fazer a transformação desse trecho da classe abstrata para o banco. Já fiz muito desta maneira como recomendou boirock, porém pensando conceitualmente e na documentação acredito ser esta a melhor forma, pois olhando o modelo já se percebe que o usuário poderá ter apenas uma tarefa em andamento por vez e vários (ou nenhuma) concluída. Assim, tenho uma documentação mais rica e clara.
Agora preciso pensar na forma de compor a tarefa em andamento e seus 3 status.
Obrigado pela ajuda, vou continuar pensando aqui... se alguém tiver alguma solução.
No primeiro modelo que eu apresentei as entidades "TarefaAndamento" e "TarefaConcluida" herdam o valor da classe abstrata "EstadoDaTarefa", desta forma é como "Tarefa" esteja ligado diretamente a "TarefaAndamento" e "TarefaConcluida". Mas como temos uma ligação 1-1 entre "EstadoDaTarefa" e "Tarefa", significa que ou a tarefa está "em andamento" ou está "concluída", de acordo com qual entidade está associada primeiro.
Não sei se me fiz entender. Mas como falei anteriormente, é um modelo conceitual e, segundo o livro, as entidades abstratas não são transformadas em tabelas.
Gostei muito desta forma de modelar, só que não sei como fazer a transformação desse trecho da classe abstrata para o banco. Já fiz muito desta maneira como recomendou boirock, porém pensando conceitualmente e na documentação acredito ser esta a melhor forma, pois olhando o modelo já se percebe que o usuário poderá ter apenas uma tarefa em andamento por vez e vários (ou nenhuma) concluída. Assim, tenho uma documentação mais rica e clara.
Agora preciso pensar na forma de compor a tarefa em andamento e seus 3 status.
Obrigado pela ajuda, vou continuar pensando aqui... se alguém tiver alguma solução.
#4
Posted 01/07/2008, 09:50
Bom galera, brincando mais um pouquinho cheguei a seguinte solução:
Esta solução dá a entender ao analista que: 1 usuário pode ter várias tarefas concluídas e apenas 1 em andamento.
A tarefa em andamento pode possuir apenas 1 status atual e vários antigos.
Abraço.
Esta solução dá a entender ao analista que: 1 usuário pode ter várias tarefas concluídas e apenas 1 em andamento.
A tarefa em andamento pode possuir apenas 1 status atual e vários antigos.
Abraço.
#5
Posted 01/07/2008, 11:49
Legal marciovmartins!
Poderia contribuir com a gente mostrando como ficaria no modelo físico?
Poderia contribuir com a gente mostrando como ficaria no modelo físico?
0 user(s) are reading this topic
0 membro(s), 0 visitante(s) e 0 membros anônimo(s)