Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Hipnoted

Sugestões sobre construção de BD para Gestão de Tarefas

Mensagens Recomendadas

Hipnoted

Boas!

Num projeto estou a construir a BD para a gestão de Tarefas.

As tarefas podem ser repetitivas, e necessito de gerir também o histórico da mesma tarefa. Para explicar melhor como funciona, imaginemos a seguinte tarefa: "Pagar a Luz". Suponhamos que defino a ação desta tarefa de 2 em 2 meses... Teria de mostrar essa tarefa, por exemplo, em Janeiro, Março, Maio, etc. Em cada um destes anteriores meses pode-se marcar a tarefa como concluída, indicando a data.

Ao aceder ao histórico da Tarefa pode acontecer eu ver que a fatura da luz foi paga em Janeiro e Maio mas que a de Março ainda não foi concluída...

Para isso criei uma tabela Task onde defino a tarefa, a sua periodicidade, entre outras coisas. Criei também uma tabela TaskProgress onde registo todo o histórico da tarefa... Por exemplo, pegando no exemplo anterior, teria 3 registos da mesma Tarefa: Janeiro, Março e Maio. O Modelo é mais ou menos o que mostra a imagem:

vd04.png

Sugestões? Será esta a melhor forma de implementar isto?


"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

O esquema parece-me apropriado.

Olhando para alguns detalhes, esperaria que o createtime estivesse na Task (penso que é estas que crias, e as outras aparecem automaticamente, certo?). O mesmo parece-me aplicável ao name e description (nestes casos, eu costumo querer alterar o nome e a descrição de todas as tarefas com a mesma origem ao mesmo tempo).

Já agora, em vez de TaskProgress acho que devias usar TaskInstance ou similar. Associo TaskProgress mais ao estado (o teu Status) do que a uma ocorrência da tarefa :D

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Hipnoted

Boas Rui Carlos, obrigado pelo feedback.

Olhando para alguns detalhes, esperaria que o createtime estivesse na Task (penso que é estas que crias, e as outras aparecem automaticamente, certo?).

Sim as "tarefas em curso" vão sendo colocadas lá automaticamente, mas também quero saber quando foram realmente criadas por isso esse campo faz todo o sentido. No entanto, e já que falas nisso, reparei que também faz sentido colocar um createtime e um updatetime na tabela Task.

O mesmo parece-me aplicável ao name e description (nestes casos, eu costumo querer alterar o nome e a descrição de todas as tarefas com a mesma origem ao mesmo tempo).

Nesse caso está bem como está, porque se reparares na tabela Task tem lá esses nomes. Na altura, ao fazer o desenho inicial da BD coloquei os campos também na outra tabela mas em princípio são para retirar ou para não serem usados, daí percebo a tua confusão... :)

Em relação ao nome é mesmo isso que pretendo, daí o nome. Quero registar a ocorrência da tarefa mas também dou muita importância ao estado em que se encontra. Mas isto dos nomes são "penauts"... :D

Editado por Hipnoted

"Nunca discutas com um idiota. Eles arrastam-te até ao seu nível e depois ganham-te em experiência"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.