我一直在試圖找到一個理想的解決方案,以在mongoid中跟隨和發現這一點。 HABTM mongoid following/followerrails mongoid follow/unfollow指導和優化
出於某種原因,林不知道如何優化這和這個職位是早在2011年
如果以這種方式實現,追隨者和以下ID保存在數組中。這對於少量的追隨者來說很好,可能很快。但想象一下,如果有成千上萬的追隨者,那麼如果你每次搜索數組中的一個項目,通過數組可能不是最快的方法。
根據本教程鏈接,http://ruby.railstutorial.org/chapters/following-users 以下建議放在關係表中,這是快速查找時,你只需要檢查關係。
我對所有人的問題是下面的代碼非常適合mongoid優化?我需要一些專家建議,當有大量追隨者時,你們是如何處理關係的。
謝謝。
class User
include Mongoid::Document
field :name, type: String
has_and_belongs_to_many :following, class_name: 'User', inverse_of: :followers, autosave: true
has_and_belongs_to_many :followers, class_name: 'User', inverse_of: :following
def follow!(user)
if self.id != user.id && !self.following.include?(user)
self.following << user
end
end
def unfollow!(user)
self.following.delete(user)
end
end
非常感謝,我會試試這個...可能這是最好的方式比保持它在陣列中。將標記在回答一次我驗證它。 – Axil 2013-05-07 02:55:46
還有一件事我需要檢查,對於用戶刪除,我不知道在此代碼中有驗證以銷燬用戶的所有後續條目?還需要驗證這個...可能不是。 – Axil 2013-05-07 03:36:08
它工作的代碼,但在用戶刪除,它不刪除後續條目。應該做一些清理工作。這是有點回答...謝謝。 – Axil 2013-05-07 05:02:37