Ogólnie rzecz biorąc, ENUM typy nie są przeznaczone do użycia w takich sytuacjach. Dzieje się tak szczególnie w przypadku, gdy zamierzasz zapewnić elastyczność dodawania lub usuwania ról w przyszłości. Jedyny sposób na zmianę wartości ENUM jest z ALTER TABLE , podczas gdy definiowanie ról we własnej tabeli będzie wymagało po prostu nowego wiersza w roles tabela.
Ponadto za pomocą roles tabela umożliwia dodanie dodatkowych kolumn, aby lepiej zdefiniować rolę, np. description pole, które zaproponowałeś w Opcji 1. Nie jest to możliwe, jeśli użyjesz ENUM wpisz jak w Opcji 2.
Osobiście nie wybrałbym ENUM w tych scenariuszach. Może widzę, że są używane w kolumnach o absolutnie skończonym zbiorze wartości, takich jak {Spades, Hearts, Diamonds, Clubs} zdefiniować kolor karty, ale nie w przypadkach takich jak ten, o którym mowa, ze względu na wspomniane wcześniej wady.