Có hai loại đặc biệt thích hợp để lưu trữ từ điển nói chung: hstore
và json
- hoặc jsonb
cao cấp nhất
trong Postgres 9.4 trở lên.
Postgres cũng có xml
chuyên dụng
kiểu dữ liệu, nhưng tôi muốn chọn một trong ba tùy chọn trước đây. XML tương đối dài dòng và phức tạp hơn (không nói là phức tạp) và có thể quá mức cần thiết cho mục đích của bạn.
Nếu tất cả những gì bạn muốn từ DB là lưu trữ và truy xuất toàn bộ từ điển, đây là những lựa chọn tốt. Xem:
Bạn cũng sẽ tìm thấy thảo luận sâu rộng về ưu và nhược điểm xung quanh eav (thực thể-thuộc tính-giá trị) lưu trữ trong cơ sở dữ liệu quan hệ.
Nếu bạn muốn những thứ khác từ DB, như tính toàn vẹn tham chiếu, khóa ngoại hoặc nhiều ràng buộc khác, dễ dàng truy cập vào các giá trị riêng lẻ, kích thước lưu trữ tối thiểu, chỉ mục đơn giản, v.v. Tôi đề xuất một hoặc nhiều bảng với chuyên dụng ( chuẩn hóa ) cột.
Bố cục bảng chuẩn hóa
Từ những gì tôi thu thập được, "MyObject" (m
) chứa một bộ sưu tập các tham chiếu đến "OtherObject" (o
). Mỗi m
có liên quan đến (24) o
và mỗi o
có liên quan đến 0-n m
- có thể được thực hiện trong mối quan hệ n:m cổ điển. Dưới đây là hướng dẫn chi tiết: