En general, ENUM
tipos no están destinados a ser utilizados en estas situaciones. Este es especialmente el caso si tiene la intención de tener la flexibilidad de agregar o eliminar roles en el futuro. La única manera de cambiar los valores de un ENUM
es con una ALTER TABLE
, mientras que definir los roles en su propia tabla simplemente requerirá una nueva fila en roles
mesa.
Además, usando los roles
la tabla le permite agregar columnas adicionales para definir mejor el rol, como la description
campo que sugirió en la Opción 1. Esto no es posible si tuviera que usar un ENUM
escriba como en la Opción 2.
Personalmente no optaría por un ENUM
en estos escenarios. Tal vez pueda ver que se usan para columnas con un conjunto de valores absolutamente finito, como {Spades, Hearts, Diamonds, Clubs}
para definir el palo de una carta, pero no en casos como el que nos ocupa, por las desventajas mencionadas anteriormente.