Uso delle fixture per mantenere le risorse del database statico

1

Ho uno schema simile a questo:

  1. Crea un modello di database UsagePlan che memorizza quanti token di utilizzo riceve un cliente a pagamento in cambio della rispettiva tariffa mensile. Attraverso il mio ORM (Django), sovrascrivo il metodo save per non consentire alcuna scrittura a questa tabella dal mio codice.

  2. Creo un dispositivo che specifica i piani di utilizzo come specificato dal mio cliente. Ogni volta che distribuisco, questa apparecchiatura viene caricata nel database (idempotently).

  3. Creo un altro modello LiveUsagePlan . Quando un utente si trasforma in un cliente a pagamento, un'istanza di questo modello è correlata all'utente e memorizza una copia del UsagePlan che hanno scelto.

  4. Il mio cliente aggiorna i propri piani di utilizzo, quindi aggiorno la fixture e la distribuzione. I clienti attuali non sono interessati dal momento che il loro LiveUsagePlans non cambia ("grandfathered"), tuttavia il LiveUsagePlans di tutti i nuovi clienti copierà il nuovo UsagePlans

Sono scettico su questo modello, poiché l'ho inventato e non l'ho mai visto da nessun'altra parte. Non ho mai visto gli apparecchi utilizzati al di fuori del contesto dei test. Ci sono problemi evidenti che non vedo? Qual è il modo migliore per gestire questo tipo di stato per lo più statico?

    
posta Julien 21.01.2017 - 01:38
fonte

0 risposte