Mentre lavoro su un'applicazione, sto affrontando un problema. E non sono sicuro di come risolvere questo.
Per spiegazioni, sono riuscito a trovare un semplice esempio di seguito:
Considera un'applicazione di un negozio di alimentari.
- Ha un numero finito (il che significa che gli oggetti non cambieranno spesso) di oggetti.
- Ogni elemento è diverso dagli altri e ha le sue proprietà. In questo esempio sono:
- Orange
- Prenota
- Cioccolato
- L'utente aggiungerebbe una o più istanze sopra gli elementi in un BASKET.
Da saggezza convenzionale ho deciso di rappresentare questa struttura in DB relazionale come segue:
- Crea tabelle individuali per ARANCIONE, PRENOTA, CIOCCOLATO e CARRELLO.
- E creato una tabella di mappatura tra sopra con BASKET.
Questo funziona fin qui bene. Ecco il problema
Una volta che l'utente salva il carrello, al momento del checkout il negozio imporrà alcune regole / sconti che sono impostati per uno scenario individuale, ad esempio:
- Se il carrello dell'utente ha 2 arance, non può effettuare il checkout dei cioccolatini a forma di ROUND.
- Se il cesto di checkout degli utenti tra le 10 e le 12 non gli è consentito il checkout dei libri dall'autore: Dan Brown.
- E alcune altre regole, puoi vedere dove sto andando con queste.
L'utente non sarà a conoscenza di queste regole sopra al momento dell'aggiunta degli articoli nel carrello. Ma queste regole sono imposte al momento del pagamento.
Il mio problema è COME e DOVE dovrei memorizzare queste regole? Non riesco a codificarli con difficoltà nell'applicazione. Devono essere conservati da qualche parte come linee guida per il cassiere al momento del pagamento.
Non sono sicuro di poter articolare correttamente il problema, ma l'ho semplificato il più possibile.
Se qualcuno ha delle soluzioni per favore fammelo sapere.