Tôi đang triển khai chức năng để theo dõi những bài báo mà người dùng đã đọc.
create_table "article", :force => true do |t|
t.string "title"
t.text "content"
end
Đây là lần di chuyển của tôi cho đến nay:
create_table :user_views do |t|
t.integer :user_id
t.integer :article_id
end
Bảng user_views sẽ luôn được truy vấn để tìm kiếm cả hai cột, không bao giờ chỉ một cột. Câu hỏi của tôi là chỉ số của tôi sẽ trông như thế nào. Có sự khác biệt trong thứ tự của các bảng này không, nên có thêm một số tùy chọn cho nó hay bất cứ điều gì. DB mục tiêu của tôi là Postgres.
add_index(:user_views, [:article_id, :user_id])
Cảm ơn.
CẬP NHẬT:
Bởi vì chỉ có thể tồn tại một hàng chứa các giá trị giống nhau trong cả hai cột (vì khi biết user_id ĐÃ đọc article_id), tôi nên xem xét tùy chọn: unique? Nếu tôi không nhầm thì điều đó có nghĩa là tôi không phải tự mình kiểm tra và chỉ cần thực hiện chèn mỗi khi người dùng truy cập một bài báo.