Mi è stato affidato l'incarico di creare un sistema in cui gli utenti possano acquistare proprietà intellettuale (ampiamente categorizzate, difficili da spiegare cosa stanno realmente acquistando) dal sistema e possono trasferire fondi tra loro.
Allo scopo ho creato una tabella delle transazioni che contiene il mittente, il destinatario e l'importo. Per motivi di prestazioni, memorizzo il saldo corrente dell'utente in una colonna nella tabella utenti e lo aggiorno con i trigger nella tabella delle transazioni.
Tuttavia esiste un tipo di prodotto che non è realmente venduto ma piuttosto "affittato", il che significa che si paga come si va, e non è un prezzo fisso a seconda dell'utilizzo è possibile ottenere addebitato x dollari ogni y secondi dove xey sono molto variabili. In generale, comunque, entrambi i valori saranno abbastanza bassi - x sarà centesimi y sarà ~ 10 o meno.
Spero che tu possa vedere come questo diventa un problema per il mio attuale set up, non posso usare la tabella delle transazioni per l'ovvio motivo che verrà spammato con piccole transazioni (che sarebbe il modo corretto di usare il sistema suppongo ). La soluzione che viene in mente è quella di accumulare il prezzo da qualche altra parte e quindi addebitare una volta che l'utente interrompe l'utilizzo del servizio, tuttavia sorge un altro problema con quella soluzione: cosa succede se l'utente avvia il servizio e poi acquista qualcos'altro dal sistema ed è lasciato con una quantità inferiore a quella che si accumula.
Nota: sto parlando di valuta virtuale nel sistema che gli utenti pagano con denaro reale.
Quale sarebbe un modo corretto di affrontare questo?