sql >> Database >  >> RDS >> PostgreSQL

SQL:Voordelen van een ENUM versus een één-op-veel relatie?

Voorbeeld weergegeven met PostgreSQL, maar andere RDBMS's hebben vergelijkbare syntaxis

Dat is onjuist. Het is geen ISO/IEC/ANSI SQL-vereiste, dus de commerciële databases bieden het niet (u wordt verondersteld om opzoektabellen te verstrekken). De kleine kant van de stad implementeert verschillende "extra's", maar implementeert niet de strengere eisen, of de grunt, van de grote kant van de stad.

We hebben ook geen ENUM's als onderdeel van een DataType, dat is absurd.

Het eerste nadeel van ENUM's is dat het niet-standaard is en daarom niet draagbaar.

Het tweede grote nadeel van ENUMs is dat de database Gesloten is. De honderden Report Tools die in een database kunnen worden gebruikt (onafhankelijk van de app), kunnen ze niet vinden en kunnen daarom de namen/betekenissen niet projecteren. Als u een normale Standard SQL Lookup-tabel had, is dat probleem verholpen.

De derde is dat wanneer u de waarden wijzigt, u DDL moet wijzigen. In een normale standaard SQL-database voegt u eenvoudig een rij in de opzoektabel in/bijwerken/verwijderen.

Ten slotte kun je niet gemakkelijk een lijst krijgen van de inhoud van de ENUM; dat kan met een opzoektabel. Wat nog belangrijker is, u hebt een vector waarmee u Dimension-Fact-query's kunt uitvoeren, zodat u niet hoeft te selecteren uit de grote feitentabel en GROUP BY.



  1. Tien veelvoorkomende bedreigingen voor de kwaliteit van uitvoeringsplan

  2. Het hebben van zowel een gemaakte als laatst bijgewerkte tijdstempelkolom in MySQL 4.0

  3. Hoe schrijf je een SQL-statement met aanhalingstekens?

  4. sql-fout bij het uitvoeren van het script. probeer de repository te verwijderen voordat u de repository maakt