Mysql
 sql >> Base de données >  >> RDS >> Mysql

Type de données Enum contre table de données dans MySQL ?

En général, ENUM les types ne sont pas destinés à être utilisés dans ces situations. C'est particulièrement le cas si vous avez l'intention de répondre à la flexibilité d'ajouter ou de supprimer des rôles à l'avenir. Le seul moyen de changer les valeurs d'un ENUM est avec un ALTER TABLE , tandis que la définition des rôles dans leur propre table nécessitera simplement une nouvelle ligne dans les roles tableau.

De plus, en utilisant les roles table vous permet d'ajouter des colonnes supplémentaires pour mieux définir le rôle, comme la description champ que vous avez suggéré dans l'option 1. Cela n'est pas possible si vous deviez utiliser un ENUM tapez comme dans l'option 2.

Personnellement je n'opterais pas pour un ENUM dans ces scénarios. Peut-être que je peux les voir être utilisés pour des colonnes avec un ensemble de valeurs absolument fini, comme {Spades, Hearts, Diamonds, Clubs} pour définir la couleur d'une carte, mais pas dans des cas comme celui en question, pour les inconvénients mentionnés plus haut.