segunda-feira, 7 de julho de 2008

O Inferno das tabelas de status.

A palavra “status” veio para ficar no mundo dos negócios, sua utilização não tem limites, quem nunca se deparou com frases do tipo:
“O Status do meu pedido.”
“Qual o status do cliente”
“Em que status esta a ordem de serviço?”


Mas para o mundo dos sitemas a palavra “status” pode trazer grandes problemas, perguntar qual o status de um usuário é quase tão genérico quanto perguntar para uma pessoa “Olá, como está?” e você tem uma resposta do tipo “Estou indo!!!”, bem genérico, não?

O termo status é muito abrangente pode ser aplicado de várias formas, como, definir um estado ou definir uma fase de um fluxo. Não acredita em mim? Vou lhe dar um exemplo que ouvi do meu amigo Júlio. Qual o plural de “status”?

Agora você deve estar se perguntando, qual o problema de uma tabela de status?
Vamos pegar como exemplo a entidade Pedido, vamos aplicar alguns possíveis “status” a ele:
Pendente
Em andamento
Em análise
Pendente entrega
Finalizado
Cancelado


Até agora nenhum problema, certo? Mas se atente ao seguinte, alguns “tipos de status” definem o estado do Pedido, já outros definem em que fase do processo ele está, agora veja o problema, quero saber quais são os pedidos com o status “Pendente” que estão “Em análise”?

Se todos esses status estão concentrado em uma única tabela essa pergunta nunca será possível de ser respondida (sem utilizar POG heim), mas se você perguntar para o seu cliente quais são o “status” do pedido adivinha quais ele irá lhe dizer? Exato, serão os mesmos anotados acima, pois o cliente não faz diferença do estado para a fase do processo, pra ele tudo é status.
É sempre importante conversar com os usuário com termos de negócio que lhe são familiares, mas procure manter a modelagem do sistema o mais definido o possível sem utilizar termos tão genéricos. No exemplo acima nós teríamos uma tabela para controlar o estado do pedido e outra para controlar as fases do pedido, neste caso, consigo realizar várias combinações dos possíveis “status” do meu pedido.

Bom pessoal, a dica acima é bem simples mas pode te livrar de algumas dores de cabeça.
Até a próxima.