none
Como tratar as inevitáveis duplicidades de mina tabela ? RRS feed

  • Pergunta

  • Vamos com calma que o problema eh grande!!! =D 

    eh assim, meu programa importa uma tabela do SAP para o Access, nessa tabela tem as horas de cada funcionario separadas por dia. Em uma outra tela de meu programa eu faço uma consolidação dessas horas, comparando as horas que foram apontadas com as horas aprovadas para cada funcionário.  

    o problema esta nessa comparação, quando um importo uma unica tabela ele funciona corretamente, mas quando importo uma segunda ou terceira tabela. acabam sendo criadas algumas duplicidades e eh ai que vem o grande problema como tratar elas. 

    para os valores da consolidação saírem corretos o programa deveria comparar os registros se eles forem iguais ele deve pegar da tabela mais recente. se as datas que a pessoa trabalhou forem iguais mas a s horas diferentes pegar o registro da tabela mais recente. como os relatórios do SAP nao tem o mesmo intervalo de tempo alguns registro nao sao duplicados e eles devem ser usados na consolidação tbm. 

    pra resolver isso eu tinha pensado em criar 3 tabelas  a "antiga" , a "nova " e dessas duas sairia a "usada para a conlidação" mas como so novo na area nao faço a minima ideia de como fazer isso se alguem pude-se me ajudar eu iria ficar muito grato.

    Att.: Guilherme Gamboa 

    sexta-feira, 11 de outubro de 2013 13:29

Respostas

  • Bem, teria que entender melhor o seu negócio para tentar te ajudar. Quanto a evitar duplicidade, existe diversas formas para fazer. Poderia criar um método que cada vez que um ID estivesse entrando, você faria a comparação do mesmo na tabela a ser gravado e se for igual, aí faria o que deveria, se exclui, se pega o mais novo como vc falou. Bem, isso traria um problema para você. Performance. Por que? Porque estaria sempre fazendo verificação para cada item que vc estivesse importando. Numa base pequena, talvez fosse imperceptível, mas em uma base grande, aí sim, isso seria um desconforto. Agora, se esse tipo de importação for feito, tipo uma vez por dia ou por semana, e feito por uma única pessoa, talvez não importasse tanto, dando um (Nolock) na tabela, para não travar o BD ou jogar isso numa Thread, caso fosse uma importação em Back. Cara, tem que conhecer bem seu negócio para te dar uma resposta mais eficiente. Olhando seu post, eu faria com uma TASK(Thread), usando talvez um serviço(caso fosse automática ou programada), eu seguiria esse caminho. O serviço chamava a Task, que teria uma tarefa agendada e a Task executaria o método que faria isso.
    • Marcado como Resposta Guilherme Gamboa sexta-feira, 11 de outubro de 2013 19:25
    sexta-feira, 11 de outubro de 2013 16:52