Jump to content


Photo

Estado Da Tarefa.


  • Faça o login para participar
4 replies to this topic

#1 marciovmartins

marciovmartins

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado

Posted 27/06/2008, 19:06

Bom galera, estou com a seguinte dúvida:

- Uma tarefa (estilo helpdesk) tem os seguintes estados: à iniciar, em andamento, interrompido, concluído.

DER
Posted Image

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
Posted Image

Seguindo este mesmo modelo, eu fiz desta forma, estaria correto?

#2 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 27/06/2008, 20:41

:ponder: Em modelagem é difícil dizer o que está certo e o que está errado! Pois se atende, está certo! :D
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 marciovmartins

marciovmartins

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado

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.

#4 marciovmartins

marciovmartins

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado

Posted 01/07/2008, 09:50

Bom galera, brincando mais um pouquinho cheguei a seguinte solução:

Posted Image

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 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 01/07/2008, 11:49

Legal marciovmartins!
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)

IPB Skin By Virteq