Questo dipende molto dalla situazione attuale, ma il punto dei tipi di colonna in primo luogo consiste nel definire con precisione quali valori sono consentiti e quali no. Se, nel tuo dominio problematico, l'attributo che stai considerando di memorizzare come valore ENUM, è corretto nel nel senso che non è possibile avere altri valori, quindi ENUM è un'ottima scelta. Un esempio di questo sarebbe il genere: ENUM('male', 'female')
è ottimo, perché la possibilità di un terzo genere da aggiungere sarebbe davvero molto bassa.
Se si memorizzano valori che sono più suscettibili di modifiche, è possibile prendere in considerazione la possibilità di normalizzare il modello dati in una relazione molti-a-uno.
Lo svantaggio pratico è l'allungabilità. Non è possibile aggiungere un valore all'elenco senza aggiornare l'intera tabella. Non è possibile contrassegnare i valori come storici. L'elenco dei valori è limitato. Sebbene tu possa avere il meglio da entrambi quando sposti la funzione lista sul modello MVC della tua applicazione e lasci che il tipo di colonna sia CHAR. A meno che le prestazioni e l'archiviazione non siano entrambi elementi chiave per l'applicazione, non raccomanderei l'uso dell'enumerazione quando il database viene utilizzato solo dalle applicazioni. – Code4R7