sql >> Database teknologi >  >> RDS >> PostgreSQL

SQL:Fordele ved et ENUM vs. et en-til-mange forhold?

Eksempel vist ved brug af PostgreSQL, men andre RDBMS'er har lignende syntaks

Det er forkert. Det er ikke et ISO/IEC/ANSI SQL-krav, så de kommercielle databaser giver det ikke (det er meningen, at du skal levere opslagstabeller). Den lille ende af byen implementerer forskellige "ekstraudstyr", men implementerer ikke de strengere krav eller grynten fra den store ende af byen.

Vi har heller ikke ENUM'er som en del af en DataType, det er absurd.

Den første ulempe ved ENUM'er er, at det er ikke-standard og derfor ikke bærbart.

Den anden store ulempe ved ENUMs er, at databasen er lukket. De hundredvis af rapportværktøjer, der kan bruges på en database (uafhængig af appen), kan ikke finde dem, og kan derfor ikke projicere navnene/betydningen. Hvis du havde en normal standard SQL-opslagstabel, er dette problem elimineret.

Den tredje er, når du ændrer værdierne, skal du ændre DDL. I en normal standard SQL-database skal du blot indsætte/opdatere/slette en række i opslagstabellen.

Sidst kan du ikke nemt få en liste over indholdet af ENUM; du kan med en opslagstabel. Endnu vigtigere er det, at du har en vektor til at udføre alle Dimension-Fact-forespørgsler med, hvilket eliminerer behovet for at vælge fra den store faktatabel og GROUP BY.



  1. Din ultimative guide til SQL Join:CROSS JOIN – Del 3

  2. Pivoter med dynamiske kolonner i SQL Server

  3. ModuleNotFoundError:Intet modul med navnet 'pyodbc' ved import af pyodbc til py-script

  4. Hvordan henter man værdier fra en database?