Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Enum-Datentyp versus Datentabelle in MySQL?

Im Allgemeinen ENUM -Typen sollten in diesen Situationen nicht verwendet werden. Dies ist insbesondere dann der Fall, wenn Sie beabsichtigen, zukünftig Rollen flexibel hinzuzufügen oder zu entfernen. Die einzige Möglichkeit, die Werte eines ENUM zu ändern ist mit einem ALTER TABLE , während die Definition der Rollen in ihrer eigenen Tabelle einfach eine neue Zeile in roles erfordert Tabelle.

Zusätzlich die Verwendung der roles In der Tabelle können Sie zusätzliche Spalten hinzufügen, um die Rolle besser zu definieren, wie z. B. die description Feld, das Sie in Option 1 vorgeschlagen haben. Dies ist nicht möglich, wenn Sie ein ENUM verwenden würden wie in Option 2 eingeben.

Ich persönlich würde mich nicht für ein ENUM entscheiden in diesen Szenarien. Vielleicht kann ich sehen, dass sie für Spalten mit einem absolut endlichen Satz von Werten verwendet werden, wie zum Beispiel {Spades, Hearts, Diamonds, Clubs} um die Farbe einer Karte zu definieren, aber nicht in Fällen wie dem fraglichen wegen der oben erwähnten Nachteile.