Като цяло, ENUM
типове не са предназначени да се използват в тези ситуации. Това е особено важно, ако възнамерявате да се погрижите за гъвкавостта при добавяне или премахване на роли в бъдеще. Единственият начин да промените стойностите на ENUM
е с ALTER TABLE
, докато дефинирането на ролите в тяхната собствена таблица просто ще изисква нов ред в roles
таблица.
В допълнение, с помощта на roles
таблицата ви позволява да добавяте допълнителни колони, за да дефинирате по-добре ролята, като description
поле, което предложихте в опция 1. Това не е възможно, ако използвате ENUM
въведете, както в опция 2.
Лично аз не бих избрал ENUM
в тези сценарии. Може би мога да ги видя да се използват за колони с абсолютно краен набор от стойности, като {Spades, Hearts, Diamonds, Clubs}
за определяне на боята на карта, но не и в случаи като въпросния, поради недостатъците, споменати по-рано.