In het algemeen ENUM
typen zijn niet bedoeld om in deze situaties te worden gebruikt. Dit is met name het geval als u van plan bent in de toekomst te voorzien in de flexibiliteit om rollen toe te voegen of te verwijderen. De enige manier om de waarden van een ENUM
te veranderen is met een ALTER TABLE
, terwijl het definiëren van de rollen in hun eigen tabel eenvoudigweg een nieuwe rij vereist in de roles
tafel.
Bovendien, met behulp van de roles
tabel kunt u extra kolommen toevoegen om de rol beter te definiëren, zoals de description
veld dat u heeft voorgesteld in optie 1. Dit is niet mogelijk als u een ENUM
. zou gebruiken typ zoals in optie 2.
Persoonlijk zou ik niet kiezen voor een ENUM
in deze scenario's. Misschien zie ik ze worden gebruikt voor kolommen met een absoluut eindige reeks waarden, zoals {Spades, Hearts, Diamonds, Clubs}
om de kleur van een kaart te definiëren, maar niet in gevallen zoals die in kwestie, vanwege de eerder genoemde nadelen.