Mysql
 sql >> Database >  >> RDS >> Mysql

Enum tipo di dati rispetto alla tabella dei dati in MySQL?

In generale, ENUM i tipi non sono pensati per essere utilizzati in queste situazioni. Questo è particolarmente vero se intendi soddisfare la flessibilità di aggiungere o rimuovere ruoli in futuro. L'unico modo per modificare i valori di un ENUM è con un ALTER TABLE , mentre la definizione dei ruoli nella propria tabella richiederà semplicemente una nuova riga nei roles tabella.

Inoltre, utilizzando i roles table ti consente di aggiungere colonne aggiuntive per definire meglio il ruolo, come la description campo che hai suggerito nell'opzione 1. Ciò non è possibile se dovessi utilizzare un ENUM digita come nell'opzione 2.

Personalmente non opterei per un ENUM in questi scenari. Forse posso vederli usati per colonne con un insieme di valori assolutamente finito, come {Spades, Hearts, Diamonds, Clubs} definire il seme di una carta, ma non in casi come quello in questione, per gli svantaggi citati in precedenza.