Nella mia applicazione ho un set di lavori da eseguire:
- Ogni lavoro passa attraverso gli stati "non avviato", "avviato", "completato", "non riuscito" ecc.
- Ogni lavoro ha una serie di pre-condizioni e post-condizioni.
- Il lavoro non può essere avviato finché non sono soddisfatte le condizioni preliminari e deve essere contrassegnato come non riuscito se non soddisfa le condizioni del post.
Ad esempio, supponiamo che il lavoro importi un file di testo nel database. La pre-condizione sarebbe quella di verificare se il file sorgente esiste e la post-condizione sarebbe di verificare se i dati esistono nel database. Oltre a queste pre e post-condizioni, a volte il lavoro dipende anche da altri lavori da completare. È facile creare una tabella di lavori e disporre di una tabella di dipendenze per i lavori, ma è effettivamente possibile rendere questi controlli di pre e post validazione configurabili nel database (in modo che non sia necessario apportare modifiche al codice se queste condizioni cambiano o nuove le condizioni sono aggiunte)?
Anche se è possibile in qualche modo, è una buona idea farlo? È necessario rendere questo modello generico in modo che altre applicazioni possano utilizzarlo anche se i controlli di convalida da eseguire sono completamente diversi per altre applicazioni.