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.