Показан пример с използване на PostgreSQL, но други RDBMS имат подобен синтаксис
Това е неправилно. Това не е изискване на ISO/IEC/ANSI SQL, така че търговските бази данни не го предоставят (трябва да предоставите справочни таблици). Малкият край на града прилага различни „екстри“, но не прилага по-строгите изисквания или мрънкането на големия край на града.
Ние също нямаме ENUM като част от DataType, това е абсурдно.
Първият недостатък на ENUMs е, че е нестандартен и следователно не е преносим.
Вторият голям недостатък на ENUM е, че базата данни е затворена. Стотиците инструменти за отчети, които могат да се използват в база данни (независимо от приложението), не могат да ги намерят и следователно не могат да проектират имената/значенията. Ако сте имали нормална стандартна таблица за търсене в SQL, този проблем е елиминиран.
Третото е, че когато промените стойностите, трябва да промените DDL. В нормална стандартна SQL база данни вие просто вмъквате/актуализирате/изтривате ред в справочната таблица.
И накрая, не можете лесно да получите списък със съдържанието на ENUM; можете с таблица за справка. По-важното е, че имате вектор, с който да извършвате всякакви заявки Dimension-Fact, елиминирайки необходимостта от избиране от голямата таблица с факти и ГРУПИРАНЕ ПО.