Cita:
Empezado por andresenlared
saludos...
respecto a las locuras de las tranascciones como se puede evitar el abrazo mortal cuando dos aplicaciones estan accediendo al mismo tiempo al mismo registro...por ejemplo la aplicacion A esta actualizando el registro 5 de la tabla T1 y la aplicacion B esta realizando una actualizacion en otro campo del mismo registro en la tabla T1....son situaciones que efectivamente se pueden presentar cuando se trabajan diferentes aplicaciones sobre una misma base de datos...pero cual seria la mejor forma de controlar estas situaciones.?
|
Pienso que aquí lo mejor es prevenir. Es decir, si dos o más usuarios van a modificar un registro lo mejor es que el primero que interviene lo establezca como propio y el resto lo único que puedan entrar es en modo lectura, de esta manera, evitamos que dos usuarios modifiquen una información sobre un registro que en principio no debería ocurrir según qué casos.
Respecto a tu especificación concreta, pienso que deberías revisar la Forma Normal de tu base y si se relaciona correctamente con la lógica de los procesos. Un usuario no debería tener el privilegio de modificar una parte de un registro y otro otra parte. Divide esa tabla en dos que se relacionen, es posible que no hayas establecido bien las entidades.
Si no es así, establece un sistema de prioridades y crítico, quiero decir, que existe código crítico que debe resolverse en poco tiempo. Puedes utilizar en este caso un update directo sobre la base y su consecuente transacción. En teoría como ambos usuarios modifican diferentes partes del registro el cual no se puede dividir en dos o más tablas, dará lo mismo cuando actualicen ya que los datos que no modifiquen no deberían verlos.
Saludos.