Originariamente inviato da Salvatore Manca
Salve ragazzi, vado subito al dunque.

Sto realizzando un semplice e-commerce in mysql e php.

Ho una tabella contentente gli articoli e tra i vari campi che la compongono anche uno che indica i pezzi disponibili del prodotto.

Quando l'utente naviga inserisce gli articoli nel carrerro, conferma gli acquisti e paga con un pos virtuale. Ora io ho pensato, ad avvenuto pagamento, di eleminare dal campo "disponibilità" la quantità acquistata.

Questo però mi comporta dei problemi.

Poniamo ad esempio di avere un articolo con 4 pezzi disponibili.

Se un utente (A) ne mette 3 nel carrello ma non conclude subito l'acquisto, un altro utente (B) vede ancora ancora 4 pezzi. A questo punto l'utente B mette 2 pezzi nel carrello. a questo punto l'utente A conclude l'acquisto e l'utente B subito dopo ma con 1 pezzo in meno rispetto a quello che ha inserito nel carrello.

Se invece rimuovo i pezzi dalla disponibilità prima che l'utente A concluda l'ordine, l'utente B vede i pezzi "disponibili", quindi 1, ma non è certo che siano realmente quelli perche l'uente A potebbe non conludere l'ordine, quindi l'utente B acquisterebbe solo 1 pezzo mentre magari ne avrebbe voluto acquistare 2.

Come andrebbe gestita in questi casi, questa situazione?

Scusate se mi sono dilungato e spero di essemi spiegato.

Grazie a tutti.
io farei solo il controllo che, al momento dell'acquisto, ci siano abbastanza pezzi, altrimenti stampi l'errore 'siamo spiacenti ma abbiamo terminato la merce richiesta' o una roba del genere.

se nò puoi fare come le compagnie aere, quando scegli un volo, lo bloccano, e ti danno mi sembra 15 minuti per comprarlo, dopo quei 15 minuti devi rifare la ricerca col rischio che non ci siano più posti disponibili, o i prezzi siano aumentati.