Ví dụ được hiển thị bằng cách sử dụng PostgreSQL, nhưng các RDBMS khác có cú pháp tương tự
Điều đó không chính xác. Nó không phải là một yêu cầu ISO / IEC / ANSI SQL, vì vậy các cơ sở dữ liệu thương mại không cung cấp nó (bạn phải cung cấp các bảng Tra cứu). Khu cuối nhỏ của thị trấn thực hiện nhiều "tính năng bổ sung" khác nhau, nhưng không thực hiện các yêu cầu khắt khe hơn, hoặc sự càu nhàu, của khu cuối lớn.
Chúng tôi cũng không có ENUM như một phần của DataType, điều đó thật vô lý.
Nhược điểm đầu tiên của ENUM là nó không chuẩn và do đó không di động được.
Nhược điểm lớn thứ hai của ENUM là cơ sở dữ liệu bị đóng. Hàng trăm Công cụ Báo cáo có thể được sử dụng trên cơ sở dữ liệu (độc lập với ứng dụng), không thể tìm thấy chúng và do đó không thể chiếu tên / ý nghĩa. Nếu bạn có một bảng Tra cứu SQL Chuẩn thông thường, vấn đề đó sẽ được loại bỏ.
Thứ ba là, khi bạn thay đổi các giá trị, bạn phải thay đổi DDL. Trong cơ sở dữ liệu SQL Chuẩn Thông thường, bạn chỉ cần Chèn / Cập nhật / Xóa một hàng trong bảng Tra cứu.
Cuối cùng, bạn không thể dễ dàng nhận được danh sách nội dung của ENUM; bạn có thể với bảng Tra cứu. Quan trọng hơn, bạn có một vectơ để thực hiện bất kỳ truy vấn Thứ nguyên-Dữ liệu nào, loại bỏ nhu cầu chọn từ bảng Dữ kiện lớn và GROUP BY.