sql >> Base de Datos >  >> RDS >> Mysql

Enum tipo de datos versus tabla de datos en MySQL?

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.