Comunidad de diseño web y desarrollo en internet online

integridad en transacciones multiples tablas

Citar            
MensajeEscrito el 14 Sep 2011 06:48 am
Hola de nuevo,

Tengo dos dudas que no sé pueden estar relacionadas.
Soy nuevo en el tema de MySql, ruego tengan paciencia si no entiendo algo a la primera.

Primera duda.
Tengo dos tablas "detalle de compra" y "paquetes".

Cada vez que se crea un "detalle de compra" se tiene crear y/o asignar un "paquete" a dicho detalle. Como puedo hacerlo en una misma transacción deshaciendo los cambios en caso de producirse un error o cuando se cierre la ventana del navegador.

Segunda duda.
Cuando se pasa a un carro de la compra un articulo con un numero limitado de stock, que tengo que hacer para que otros usuarios vean el stock actualizado y que si el primer usuario al final no realiza la compra de este articulo este vuelva a su stock original.

Muchas gracias

Por Bobosa

69 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Sep 2011 12:22 pm
Sobre lo primero: con procedimientos almacenados.
Sobre lo segundo: no puedes. Sucede que por el tipo de protocolo que se usa en la web, el servidor no hace nada a menos que el cliente se lo pida y esto implica que si otro cliente modifica algo, el primero no sabrá lo que pasa a menos que se lo pregunte al servidor, el servidor no puede elegir un cliente y enviarle algo.
La solución a esto podría ser que el cliente cada cierto tiempo pregunte al servidor lo que está pasando pero es una mala idea porque recarga de trabajo al servidor y gasta ancho de banda, la otra solución es manejar dos tipos de stock, el disponible y el stock comprometido.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 14 Sep 2011 12:46 pm
gracias por responder tan rápido...pero no he entendido muy bien.

A que te refieres con procedimientos almacenados?
Tiene que ver con algo que me han comentado, Commit o rollerback...

A lo segundo, me dices que si un cliente mete en el carro el ultimo articulo de stock, y mientras este valida un segundo cliente compra el articulo, perderá la opción de compra habiendo seleccionado antes que el segundo.

Es así como funcionan los sitios como redcoon o pixmania?

Por Bobosa

69 de clabLevel



 

chrome
Citar            
MensajeEscrito el 14 Sep 2011 03:47 pm
los procedimientos almacenados, son casi como funciones, en la cual creas un proceso interno en la base de datos
function eliminar_usuario(id)
{
elimina_usuario_informacion(id);
elimina_usuario_correos(id);
}
este ejemplo es algo abstracto, la sintaxys depende la base de datos, osea practicamente creas una funcion dentro de una DB y ahi ya ahras un commit o rollback u otra cosa, para verificar la integridad de datos en ingles encontraras ejemplos variados como STORED PROCEDURES como generalmente todos conocen SP's los SP's son utilizados para garantizar la integridad de datos son usados por bancos y otras entidades que quieren preservar los datos asi que esa seria la respuesta a tu pregunta

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.