Stiamo implementando un sistema in cui un utente può acquistare "crediti" da spendere in due elementi. Sto sperando in suggerimenti su come implementare un tale sistema. Abbiamo due modi per utilizzare i crediti: ItemA e ItemB.
Quando acquisti crediti, l'utente può acquistare crediti in blocco che riduce il costo di un credito, ad esempio (questo non è vero costo ma solo un esempio):
Cost | Cost ItemA (each) | Cost ItemB (each)
-----------------------------------------------
$400 | 16c | 10c
$800 | 12c | 8c
$1200 | 8c | 4c
Uno scenario di esempio:
Un utente ha prelevato $ 400 di crediti e poi la settimana prossima ha acquistato $ 1200 di crediti. Ciò significa che possono avere $ 400 di crediti a 16c (ItemA) e 10c (ItemB) ciascuno e anche $ 1200 di crediti a 8c (ItemA) e 4c (ItemB) nel sistema.
Tutti gli utenti vedranno nel sistema che hanno un totale di $ 1600 di crediti (1200 + 400) disponibili, quando passano il credito ridurranno il totale di quanto spendono, ad esempio:
- Spend 2000 of ItemA
Reduce by $320 (16c each), $80 remaining of first credit buy
$1280 overall remaining
- Spend 2000 of ItemB
Reduce by $80 (10c each) 800 credits
Reduce by $48 (4c each) 1200 credits
Abbiamo un database per archiviare i crediti, che saranno distribuiti sotto forma di una chiave che contiene la quantità di crediti che contiene così come i controlli di convalida. Gli articoli che la spesa, ad esempio ItemA o ItemB, verranno archiviati nel database.
Come implementeresti quanto sopra riguardo alla struttura e alla logica della tabella del database per calcolare i crediti rimanenti e spesi?