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.