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

JSONB có làm cho mảng PostgreSQL trở nên vô dụng không?

Trong hầu hết các trường hợp, tôi sẽ sử dụng giản đồ chuẩn hóa với một bảng option_tag triển khai mối quan hệ nhiều-nhiều giữa các bảng option và thẻ tag . Tham khảo cách triển khai tại đây:

Nó có thể không phải là lựa chọn nhanh nhất về mọi mặt, nhưng nó cung cấp đầy đủ các chức năng của DB, bao gồm tính toàn vẹn tham chiếu, các ràng buộc, đầy đủ các loại dữ liệu, tất cả các tùy chọn chỉ mục và các bản cập nhật giá rẻ.

Để hoàn thiện, hãy thêm vào danh sách các tùy chọn của bạn:

  • hstore (lựa chọn tốt)
  • xml dài dòng hơn và phức tạp hơn hstore hoặc jsonb , vì vậy tôi sẽ chỉ sử dụng nó khi hoạt động với XML.
  • "chuỗi các giá trị được phân tách bằng dấu phẩy" (rất đơn giản, hầu hết là tùy chọn không hợp lệ)
  • EAV (Thực thể-Thuộc tính-Giá trị) hoặc "cặp tên-giá trị" (hầu hết là tùy chọn không hợp lệ)
    Chi tiết về câu hỏi liên quan này trên dba.SE:

Nếu danh sách chỉ để hiển thị và hiếm khi được cập nhật, tôi sẽ xem xét một mảng thuần túy, thường nhỏ hơn và hoạt động tốt hơn cho phần còn lại.

Đọc mục blog của Josh Berkus @a_horse được liên kết đến trong nhận xét của anh ấy. Nhưng hãy lưu ý rằng nó tập trung vào các trường hợp đã đọc được chọn. Josh thừa nhận:

Và đó là nơi mà phương pháp chuẩn hóa sẽ thắng lợi, đặc biệt là khi bạn thay đổi nhiều thẻ đơn khi tải đồng thời.

jsonb chỉ là một lựa chọn tốt nếu bạn vẫn sử dụng JSON và có thể lưu trữ và truy xuất JSON "nguyên trạng".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sau khi cập nhật lên macOS Big Sur, tôi không thể kết nối với cơ sở dữ liệu PostgreSQL của mình bằng MAMP

  2. Làm cách nào để có được danh sách tất cả các hàm được lưu trữ trong cơ sở dữ liệu của một lược đồ cụ thể trong PostgreSQL?

  3. Cách sửa LỖI:cột c.relhasoids không tồn tại trong Postgres?

  4. Tại sao truy vấn không được lưu trong tệp csv trong khi nó có vẻ bình thường trong bảng điều khiển postgresql

  5. Khung dữ liệu ghi vào Postgresql hiệu suất kém