Estou com um projeto de software aqui na empresa, onde vou controlar as horas trabalhadas de cada profissional. Porém me foi solicitado que cada profissional tenha um número X de horas atribuído a ele, que conforme ele vá registrando horas trabalhadas, esse número vá sendo subtraído. Como se fosse comprado um número X de horas de determinado profissional, e conforme ele vai executando tarefas esse numero vai diminuindo, e caso necessário seja adquirido mais horas, no caso extras.
Estou utilizando java, hibernate e o banco de dados postgresql. A minha dúvida é, qual a melhor maneira de armazenar essas horas do profissional no banco ? Eu pesquisei bastante sobre, mas ainda não consegui definir certo a melhor maneira. Pensei em utilizar o tipo INTERVAL, pois dai consigo armazenar por exemplo 200 horas, que eu consideraria mensais. Mas não sei certo se entendi o funcionamento do tipo interval.
A minha preocupação é conseguir fazer os cálculos mais tarde com essas horas.
Então…quando o administrador for consultar os profissionais, vai ser necessário apresentar a quantidade de horas disponíveis para cara profissional, e isso vai ser em HH:mm.
Além do que, futuramente vou calcular o intervalo de horas entre o ponto de início e o ponto de fim do trabalho de cada profissional, e subtrair desse valor na tabela do profissional. Não sei se consegui ser claro.
Mas realmente eu pensei em usar numeric mesmo, até por que tenho o valor da hora contratada também, e assim seria mais fácil fazer a multiplicação, imagino.
Pelo que você me disse imagino que seria mais ou menos a mesma ideia de um ponto eletrônico.
Nesse caso não vejo problema em armazenar os saldos como numeric, o ponto mais complexo no desenvolvimento seria somente a conversão disso em hh : mm para exibição.
Depois que eu li com calma eu percebi.
Então, se o funcionário larga com 200 horas, lança como numeric mesmo (vai que um deles precisa começar com 190,5).
Pois então, depois de pensar bem sobre o que vocês me disseram, realmente acho que eu estava complicando algo que de certa forma é simples. Na verdade eu só vou precisar realizar alguns cálculos e conversões mais a frente talvez, porém da forma numeric vai funcionar tudo.