sql >> Databasteknik >  >> RDS >> PostgreSQL

SQL:Fördelar med en ENUM kontra en en-till-många-relation?

Exempel visas med PostgreSQL, men andra RDBMS har liknande syntax

Det är felaktigt. Det är inte ett ISO/IEC/ANSI SQL-krav, så de kommersiella databaserna tillhandahåller det inte (du ska tillhandahålla uppslagstabeller). Den lilla delen av stan implementerar olika "extras", men implementerar inte de strängare kraven, eller grymtandet, från den stora delen av stan.

Vi har inte heller ENUM som en del av en DataType, det är absurt.

Den första nackdelen med ENUMs är att de inte är standard och därför inte är portabla.

Den andra stora nackdelen med ENUMs är att databasen är stängd. De hundratals rapportverktyg som kan användas på en databas (oberoende av appen), kan inte hitta dem och kan därför inte projicera namnen/betydelserna. Om du hade en normal Standard SQL Lookup-tabell är det problemet eliminerat.

Det tredje är att när du ändrar värdena måste du ändra DDL. I en normal standard SQL-databas infogar/uppdaterar/tar du helt enkelt en rad i uppslagstabellen.

Sist, du kan inte enkelt få en lista över innehållet i ENUM; du kan med en uppslagstabell. Ännu viktigare är att du har en vektor att utföra alla Dimension-Fact-frågor med, vilket eliminerar behovet av att välja från den stora faktatabellen och GROUP BY.



  1. importera en CSV till phpmyadmin

  2. Hur kan jag VÄLJA den första raden med MAX(kolumnvärde)?

  3. Komplexa frågeprestanda i MySQL InnoDB kontra MyISAM

  4. TNS-12519 utan maximala processer uppnådda