Pessoal, estou com algumas dúvidas em relação a minha modelagem física do banco de dados.
Basicamente preciso fazer uma aplicação CRUD, na qual desejo cadastrar projetos e seus dados (responsável, solicitante, prazos, etc).
Minha dúvida está especificamente nas seguintes entidades do modelo:
Eforço - tenho dúvida no tipo do atributo inicioTempo e prazoTempo que devo usar
O que posso colocar entre os parenteses, uma vez que pretendo trabalhar com horas e minutos?
Além disso, criei uma segunda entidade para controlar a data que ocorrerá mudanças de prazo.
É uma boa prática criar outra entidade para isso?
Projeto - existe um número que está representado como numeroProposta que é fornecido pelo departamento Financeiro (para controle do valor de cada projeto).
Minha dúvida é se realmente esse número deve estar dentro da entidade Projeto.
Segue uma imagem para ilustrar o cenário atual.
Obrigado.
Quem determina como deve ser são os requisitos funcionais, e você não apresentou os requisitos analisados.
Sobre o numero da proposta, vai depender de como funciona na prática o processo. Dependendo do caso pode ser até outra entidade, mas sem os requisitos fica difícil, vai ficar chutando.
Sobre guardar a hora separado só se tiver um motivo, na maioria dos casos se guarda data e hora juntos.
Obrigado.
Data e hora estão separados pois pode haver mudança em ambos, ou somente na hora.
Por isso achei que seria melhor separá-los.
Minha dúvida é que tipo de atributo coloco para controlar hora? TIME (obviamente), porém não sei o que o banco espera receber.
Exemplo: Se quero guardar valores em reais. Posso usar Double (10,2).
Agora para tempo não sei o que colocar quando quero cadastrar horas e minutos.
Isso costuma ser uma complicação desnecessária se a hora depender da data. Se você tivesse fazendo por exemplo um despertador, faria sentido armazenar a hora separada.
Ok. Mas depois eu consigo fazer uma soma somente da hora num relatório?
Horas por projeto por exemplo?
Consegue, se for o caso de ter a data/hora de inicio do esforço e a data/hora fim do esforço, então você calcula a diferença entre elas. Se pesquisa vai encontrar exemplos como esse: http://jquerydicas.blogspot.com.br/2013/11/mysql-diferenca-entre-datas.html