PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

SQL:Ưu điểm của ENUM so với mối quan hệ một-nhiều?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách Pi () hoạt động trong PostgreSQL

  2. Kết nối với postgres trong vùng chứa docker từ máy chủ

  3. Làm cách nào để thực thi Thủ tục được lưu trữ không truy vấn trong JDBC

  4. Khai báo SQLAlchemy:xác định trình kích hoạt và chỉ mục (Postgres 9)

  5. psql:lệnh không tìm thấy Mac