Sto memorizzando informazioni sui widget nel mio database e ogni widget ha una funzione di trasformazione (non univoca) ad esso associata. Il mio problema è come associare i widget alla loro funzione di trasformazione.
Il mio primo istinto era di usare un enum per la funzione di trasformazione. Sto usando sqlalchemy per il mio database ORM, che include un tipo enum questo rende davvero facile usare una colonna di enum. Si prende cura della convalida e posso semplicemente avere un enum nel mio codice per le possibili funzioni di trasformazione, una colonna enum su Widget e quindi una mappa nel mio codice dai valori enum alle funzioni effettive.
Poi ho letto perché le enumerazioni sono malvagie . È piuttosto convincente, ma se uso una tabella di riferimento, non posso usare un oggetto enum python, e la mia mappa dovrà essere da stringhe a funzioni - il che significa che se faccio un refuso potrebbe accadere che sto mappando da una trasformazione che non esiste nel database, che non è buona, e non ho modo di sapere che la mia mappa è esaustiva e corretta.
Qual è il modo migliore per farlo?