sql >> Database teknologi >  >> RDS >> Mysql

Enum datatype versus tabel over data i MySQL?

Generelt ENUM typer er ikke beregnet til at blive brugt i disse situationer. Dette er især tilfældet, hvis du har til hensigt at tage højde for fleksibiliteten ved at tilføje eller fjerne roller i fremtiden. Den eneste måde at ændre værdierne for en ENUM er med en ALTER TABLE , mens definering af rollerne i deres egen tabel blot vil kræve en ny række i roles tabel.

Derudover ved at bruge roles tabel giver dig mulighed for at tilføje yderligere kolonner for bedre at definere rollen, f.eks. description felt, du foreslog i mulighed 1. Dette er ikke muligt, hvis du skulle bruge en ENUM skriv som i mulighed 2.

Personligt ville jeg ikke vælge en ENUM i disse scenarier. Måske kan jeg se dem blive brugt til kolonner med et absolut begrænset sæt værdier, såsom {Spades, Hearts, Diamonds, Clubs} at definere et korts farve, men ikke i tilfælde som det pågældende, for de tidligere nævnte ulemper.



  1. Sådan stopper du mysqld

  2. AbstractMethodError på resultset.getObject

  3. bash - SQL Query Output til variabel

  4. SET GLOBAL max_allowed_packet virker ikke