Página 1 de 1

Gravar só alterado

Enviado: 01 Nov 2019 18:09
por JoséQuintas
Acabo de pensar numa coisa, mas não sei na prática disso.

Imaginem 10 terminais alterando o cadastro de um cliente ao mesmo tempo....
Um terminal altera o email
Outro terminal altera o telefone
Outro terminal altera o contato
Outros terminais alteram outras coisas

Se na hora de salvar o cliente, salvássemos apenas o campo alterado.... todas as alterações seriam salvas.

Por um lado todas as alterações serão salvas, mas ... por outro lado, o cadastro final não vai ficar como o usuário viu na tela quando estava alterando.

Será que vale a pena mexer nisso?

Não sei se em DBF isso vale, já que ele trabalha com o registro inteiro, mas em SQL.....

Gravar só alterado

Enviado: 01 Nov 2019 18:36
por rubens
Eh uma situação muito dificil de acontecer né..
Porque o cliente não estará fisicamente nos 10 terminais ao mesmo tempo...
Acho que em sql isso tem um tratamento a respeito... acho que sistemas concorrentes.. não me lembro...
Eu necessariamente travo o cliente quando um usuário entra para alterar dados do cliente...
sabe-se lá... e em sistemas com auditoria como é que ficaria... quem alterou o que e quando...

Gravar só alterado

Enviado: 01 Nov 2019 19:33
por JoséQuintas
rubens escreveu:Eu necessariamente travo o cliente quando um usuário entra para alterar dados do cliente..
Eu deixei de fazer isso faz tempo.

Imagine o seguinte:

Um usuário altera os dados do cliente, 1 hora depois vém outro usuário e altera os dados do mesmo cliente.
Qual a diferença se ele altera 1 hora depois, ou 1 milésimo de segundo depois? Não dá no mesmo?
Com certeza gravo log de tudo que foi alterado, mas... o último que chegar é o que fica.

Vantagem:
Também se acabam os testes de bloqueio... é sempre gravar e pronto, esperando no máximo 1 milésimo de segundo pra ficar disponível.

Lógico... a exceção se aplica a pedidos/notas fiscais, já que não poderia alterar durante a emissão da nota.
Nesse caso continua precisando algo especial.