Mysql
 sql >> база данни >  >> RDS >> Mysql

Enum тип данни срещу таблица с данни в MySQL?

Като цяло, ENUM типове не са предназначени да се използват в тези ситуации. Това е особено важно, ако възнамерявате да се погрижите за гъвкавостта при добавяне или премахване на роли в бъдеще. Единственият начин да промените стойностите на ENUM е с ALTER TABLE , докато дефинирането на ролите в тяхната собствена таблица просто ще изисква нов ред в roles таблица.

В допълнение, с помощта на roles таблицата ви позволява да добавяте допълнителни колони, за да дефинирате по-добре ролята, като description поле, което предложихте в опция 1. Това не е възможно, ако използвате ENUM въведете, както в опция 2.

Лично аз не бих избрал ENUM в тези сценарии. Може би мога да ги видя да се използват за колони с абсолютно краен набор от стойности, като {Spades, Hearts, Diamonds, Clubs} за определяне на боята на карта, но не и в случаи като въпросния, поради недостатъците, споменати по-рано.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връзка между каталог, схема, потребител и екземпляр на базата данни

  2. Вмъкването на JPA родител/подчинение води до изключение на MySQLIntegrityConstraintViolationException

  3. връща средна стойност на броя на записите след група по изявление

  4. Как да оптимизираме ORDER BY за изчислена колона в МАСИВНА MySQL таблица

  5. Преместена XAMPP папка на нов компютър, сега получава (XAMPPERrorDomain грешка 1.) при опит за стартиране на MySQL