Generelt ENUM
typer er ikke beregnet til at blive brugt i disse situationer. Dette er især tilfældet, hvis du har til hensigt at tage højde for fleksibiliteten ved at tilføje eller fjerne roller i fremtiden. Den eneste måde at ændre værdierne for en ENUM
er med en ALTER TABLE
, mens definering af rollerne i deres egen tabel blot vil kræve en ny række i roles
tabel.
Derudover ved at bruge roles
tabel giver dig mulighed for at tilføje yderligere kolonner for bedre at definere rollen, f.eks. description
felt, du foreslog i mulighed 1. Dette er ikke muligt, hvis du skulle bruge en ENUM
skriv som i mulighed 2.
Personligt ville jeg ikke vælge en ENUM
i disse scenarier. Måske kan jeg se dem blive brugt til kolonner med et absolut begrænset sæt værdier, såsom {Spades, Hearts, Diamonds, Clubs}
at definere et korts farve, men ikke i tilfælde som det pågældende, for de tidligere nævnte ulemper.