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

Postgres:Nhiều-nhiều so với nhiều cột so với cột mảng

Mối quan hệ nhiều-nhiều là lựa chọn khả thi duy nhất ở đây. Có một lý do tại sao họ gọi nó là cơ sở dữ liệu quan hệ.

Tại sao?

  • Tham gia thực sự không đắt như vậy.
  • Nhiều cột - Số lượng cột trong bảng của bạn sẽ là ludicris và đó sẽ là địa ngục thực sự của nhà phát triển. Khi mỗi tính năng thêm một lần di chuyển, số lượng trục trặc trong cơ sở mã của bạn sẽ rất ngớ ngẩn.
  • Cột mảng - Sử dụng cột mảng có vẻ như là một sự thay thế hấp dẫn cho đến khi bạn nhận ra rằng nó thực sự chỉ là một cải tiến nhỏ so với việc nhồi mọi thứ vào một chuỗi được phân tách bằng dấu phẩy. bạn không có tích phân tham chiếu và không có lợi ích nào của tổ chức mã đến từ việc có các mô hình đại diện cho các thực thể trong ứng dụng của bạn.
    Ồ và mỗi khi một tính năng bị giật, bạn phải cập nhật mỗi một trong số hơn 500k người dùng đó. VS chỉ sử dụng CASCADE.
class Feature
  has_many :user_features
  has_many :users, through: :user_features
end

class UserFeature
  belongs_to :user
  belongs_to :feature
end

class User
  has_many :user_features
  has_many :features, through: :user_features

  def has_feature?(name)
    features.exist?(name: name)
  end
end



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Điều gì xảy ra với THÔNG BÁO khi không có phiên nào đưa ra LISTEN trong PostgreSQL?

  2. postgresql di chuyển JSON sang JSONB

  3. VBScript bị treo khi khởi chạy tệp hàng loạt với WShell.Script Run

  4. Làm cách nào để chèn một bản ghi có thể cập nhật với cột JSON trong PostgreSQL bằng JOOQ?

  5. Vai trò không tồn tại và không thể tạo cơ sở dữ liệu khi sử dụng PostgreSQL