Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Tipo de dados enum versus tabela de dados no MySQL?


Em geral, ENUM tipos não devem ser usados ​​nessas situações. Este é especialmente o caso se você pretende atender à flexibilidade de adicionar ou remover funções no futuro. A única maneira de alterar os valores de um ENUM está com um ALTER TABLE , enquanto definir os papéis em sua própria tabela exigirá simplesmente uma nova linha no roles tabela.

Além disso, usando os roles table permite que você adicione colunas adicionais para definir melhor a função, como a description campo que você sugeriu na Opção 1. Isso não é possível se você usar um ENUM digite como na Opção 2.

Pessoalmente, eu não optaria por um ENUM nestes cenários. Talvez eu possa vê-los sendo usados ​​para colunas com um conjunto de valores absolutamente finito, como {Spades, Hearts, Diamonds, Clubs} para definir o naipe de uma carta, mas não em casos como o em questão, pelas desvantagens mencionadas anteriormente.