PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

SQL:Предимства на ENUM спрямо връзка "един към много"?

Показан пример с използване на PostgreSQL, но други RDBMS имат подобен синтаксис

Това е неправилно. Това не е изискване на ISO/IEC/ANSI SQL, така че търговските бази данни не го предоставят (трябва да предоставите справочни таблици). Малкият край на града прилага различни „екстри“, но не прилага по-строгите изисквания или мрънкането на големия край на града.

Ние също нямаме ENUM като част от DataType, това е абсурдно.

Първият недостатък на ENUMs е, че е нестандартен и следователно не е преносим.

Вторият голям недостатък на ENUM е, че базата данни е затворена. Стотиците инструменти за отчети, които могат да се използват в база данни (независимо от приложението), не могат да ги намерят и следователно не могат да проектират имената/значенията. Ако сте имали нормална стандартна таблица за търсене в SQL, този проблем е елиминиран.

Третото е, че когато промените стойностите, трябва да промените DDL. В нормална стандартна SQL база данни вие просто вмъквате/актуализирате/изтривате ред в справочната таблица.

И накрая, не можете лесно да получите списък със съдържанието на ENUM; можете с таблица за справка. По-важното е, че имате вектор, с който да извършвате всякакви заявки Dimension-Fact, елиминирайки необходимостта от избиране от голямата таблица с факти и ГРУПИРАНЕ ПО.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да надстроите PostgreSQL с PostGIS?

  2. Postgres:използване на времеви клейма за страниране

  3. Django:Кои са най-добрите практики за мигриране на проект от sqlite към PostgreSQL

  4. Колко различен е PostgreSQL от MySQL?

  5. ActiveRecord намира и връща само избрани колони, подравнени с [:id]