sql >> Databáze >  >> RDS >> PostgreSQL

SQL:Výhody ENUM vs. vztah jeden k mnoha?

Příklad zobrazený pomocí PostgreSQL, ale ostatní RDBMS mají podobnou syntaxi

To je nesprávné. Není to požadavek ISO/IEC/ANSI SQL, takže komerční databáze jej neposkytují (vy byste měli poskytnout vyhledávací tabulky). Malý konec města implementuje různé "vymoženosti", ale neimplementuje přísnější požadavky nebo grunt z velkého konce města.

Nemáme ani ENUM jako součást DataType, to je absurdní.

První nevýhodou ENUM je to, že je nestandardní, a proto není přenosný.

Druhou velkou nevýhodou ENUM je, že databáze je uzavřená. Stovky nástrojů sestav, které lze použít v databázi (nezávisle na aplikaci), je nemohou najít, a proto nemohou zobrazit názvy/významy. Pokud jste měli normální standardní vyhledávací tabulku SQL, tento problém je eliminován.

Třetí je, když změníte hodnoty, musíte změnit DDL. V normální standardní databázi SQL jednoduše vložíte/aktualizujete/smažete řádek ve vyhledávací tabulce.

Konečně nemůžete snadno získat seznam obsahu ENUM; můžete pomocí vyhledávací tabulky. Ještě důležitější je, že máte vektor, se kterým můžete provádět jakékoli dotazy Dimension-Fact, čímž odpadá nutnost vybírat z velké tabulky faktů a GROUP BY.



  1. Nelze vygenerovat graf Google pomocí dat tabulky MySQL jako zdroje dat

  2. Vypsat dočasné sloupce tabulky v mysql

  3. Hledání pozice čísla v řetězci

  4. Postgresql fulltextové vyhledávání podobných slov