2011-01-24 13 views
5

ओह & रेडिस का उपयोग करते समय संग्रह और सेट या सूची के बीच क्या अंतर है?ओहम और रेडिस: सेट, सूची या संग्रह का उपयोग कब करें?

ओम उदाहरण के कई एक संग्रह के बजाय एक सूची का उपयोग (देखें list doc itself):

class Post < Ohm::Model 
    list :comments, Comment 
end 

class Comment < Ohm::Model 
end 

इस डिजाइन पसंद के लिए तर्क क्या है?

उत्तर

5

सूची - आदेश सूची तत्वों की सूची। जब आप पूरी सूची का अनुरोध करते हैं, तो आपको वस्तुओं को सूची में रखने के तरीके को आदेश दिया जाता है।

संग्रह - unordered संग्रह तत्वों का संग्रह। जब आप संग्रह का अनुरोध करते हैं, तो आइटम यादृच्छिक क्रम में दिखाई दे सकते हैं (उदा। असामान्य)। **

आपके उदाहरण में, टिप्पणियों का आदेश दिया गया है।

** मुझे पता है कि यादृच्छिक अनियंत्रित जैसा नहीं है, लेकिन यह बिंदु को चित्रित करता है।

+0

सेट के बारे में क्या? –

14

बस एरिजन के उत्तर पर विस्तार करने के लिए।

  • सूची - आदेश दिया गया। रुबी में एक ऐरे के समान। कतारों और वस्तुओं को आदेश देने के लिए प्रयुक्त।

  • सेट - एक अनियंत्रित सूची। यह रूबी में एक ऐरे के समान व्यवहार करता है लेकिन तेज़ लुकअप के लिए अनुकूलित किया जाता है।

  • संग्रह - संदर्भ साथ संयोजन के रूप में प्रयोग किया जाता है, यह संघों का प्रतिनिधित्व करने का एक आसान तरीका प्रदान करता है।

संक्षेप में, संग्रह और संदर्भ एसोसिएशन से निपटने के लिए सुविधाजनक तरीके हैं। तो यह: - संग्रह और संदर्भ संघों का प्रतिनिधित्व करने के लिए एक सरल एपीआई प्रदान करने के लिए शुरू किए गए थे

class Post < Ohm::Model 
    attribute :title 
    attribute :body 

    def comments 
    Comment.find(:post_id => self.id) 
    end 
end 

class Comment < Ohm::Model 
    attribute :body 
    attribute :post_id 
    index :post_id 

    def post=(post) 
    self.post_id = post.id 
    end 

    def post 
    Post[post_id] 
    end 
end 

आप डिजाइन विकल्प के लिए तर्क के बारे में मूल सवाल का जवाब करने के लिए:

class Post < Ohm::Model 
    attribute :title 
    attribute :body 
    collection :comments, Comment 
end 

class Comment < Ohm::Model 
    attribute :body 
    reference :post, Post 
end 

निम्नलिखित के लिए एक शॉर्टकट है ।

संबंधित मुद्दे