Gravar só alterado

Aqui é o lugar para bater papo e trocar idéias sobre os mais variados assuntos

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gravar só alterado

Mensagem 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.....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Gravar só alterado

Mensagem 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...
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gravar só alterado

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder