Buen dia, a ver si alguien me puede dar una idea de como lograr lo que quiero
Supongamos un mercado, manejo de BD en InnoDB
Tengo un anaquel de galletas en el que necesito saber cuantas galletas hay en un determinado momento.
Muchas personas pueden llegar a las, repito, LAS cajas con galletas, pero tambien varios de ellos pudieran arrepentirse de comprarlas y no las regresaron al anaquel
Por otro lado, el cliente pudiera no poder pagar por su mercado, asi que...
Se debe comenzar una transaccion donde se vallan registrando las compras, pero se haria el commit al recibir el pago.- Asi si algo falla, un rollback reversaria todo
Sin embargo, mientras la transaccion no este confirmada, la cantidad de galletas en el anaquel ha bajado en una cantidad equivalente a lo que ya esta prefacturado, pero la BD aun no lo sabe con certeza
Para enfrentar este problema, cree una tabla de compras en transito, en la cual la aplicacion puede descontar las galletas en la caja, del inventario en el anaquel, a fin de saber a ciencia cierta, cual es mi diponibilidad real de galletas en un determinado instante.
Ademas, al recibir el pago consolido la transaccion en las tablas que corresponda y borro la compra de la tabla de transito.
Si la conexion con una caja falla, la transaccion sufrira un rollback y casi todo quedo como estaba
Todo muy fino hasta aqui, PERO.......
Si pierdo la conexion de una de las cajas mientras esta facturando, en la tabla de transito estara cargada la compra a ser realizada, afectando a los inventarios hasta que se borren los registros de la caja que fallo.
Si manejase la tabla de transito por transacciones, una falla de este tipo dispararia el rollback de forma automatica, pero mientras no consolide las ventas, las operaciones en transito no estan visibles al resto de las cajas, asi que no se cuantas galletasquedan en el estante.
Entonces, como detecto en el servidor, que una determinada caja se desconecto y como podria hacer en dicho caso para que el mismo MySql borre las operaciones de la caja que fallo en la tabla de transito ??
Alguna Idea ??
Gracias
Dafyrza