sql >> Databáze >  >> RDS >> Mysql

Enum datový typ versus tabulka dat v MySQL?

Obecně ENUM typy nejsou určeny k použití v těchto situacích. To platí zejména v případě, že máte v úmyslu zajistit flexibilitu přidávání nebo odebírání rolí v budoucnu. Jediný způsob, jak změnit hodnoty ENUM je s ALTER TABLE , zatímco definování rolí v jejich vlastní tabulce bude jednoduše vyžadovat nový řádek v roles tabulka.

Navíc pomocí roles tabulka umožňuje přidat další sloupce pro lepší definici role, jako je description pole, které jste navrhli v možnosti 1. Toto není možné, pokud byste použili ENUM zadejte jako v možnosti 2.

Osobně bych se nerozhodl pro ENUM v těchto scénářích. Možná vidím, že se používají pro sloupce s naprosto konečnou sadou hodnot, jako je {Spades, Hearts, Diamonds, Clubs} k definování barvy karty, ale ne v případech, jako je tento, kvůli nevýhodám zmíněným výše.



  1. Křížové spojení mezi více schématy v MySQL. Privilegia a výkon

  2. Jak migrovat databázi WHMCS do MariaDB Galera Cluster

  3. Zkraťte (ne zaokrouhlujte) desetinná místa v SQL Server

  4. Problémy a chyby primárního klíče Rails 4 MySQL bigInt