I allmänhet ENUM
typer är inte avsedda att användas i dessa situationer. Detta är särskilt fallet om du har för avsikt att tillgodose flexibiliteten att lägga till eller ta bort roller i framtiden. Det enda sättet att ändra värdena för en ENUM
är med en ALTER TABLE
, medan rollerna definieras i sin egen tabell kräver helt enkelt en ny rad i roles
bord.
Dessutom använder du roles
tabell låter dig lägga till ytterligare kolumner för att bättre definiera rollen, som description
fält som du föreslog i alternativ 1. Detta är inte möjligt om du skulle använda en ENUM
skriv som i alternativ 2.
Personligen skulle jag inte välja en ENUM
i dessa scenarier. Jag kanske kan se att de används för kolumner med en absolut ändlig uppsättning värden, som {Spades, Hearts, Diamonds, Clubs}
att definiera färgen på ett kort, men inte i fall som det i fråga, för de nackdelar som nämnts tidigare.