オム& Redisを使用している場合、コレクションとセットまたはリストの違いは何ですか?オーム&レディス:セット、リスト、コレクションをいつ使用しますか?
オーム例のいくつかは(list doc itselfを参照)のリストではなく、コレクションを使用します。
class Post < Ohm::Model
list :comments, Comment
end
class Comment < Ohm::Model
end
この設計上の選択の根拠は何ですか?
オム& Redisを使用している場合、コレクションとセットまたはリストの違いは何ですか?オーム&レディス:セット、リスト、コレクションをいつ使用しますか?
オーム例のいくつかは(list doc itselfを参照)のリストではなく、コレクションを使用します。
class Post < Ohm::Model
list :comments, Comment
end
class Comment < Ohm::Model
end
この設計上の選択の根拠は何ですか?
リスト - 注文リストの要素。リスト全体をリクエストすると、リスト内のアイテムの順序に従ってアイテムが取得されます。
コレクション - 順序付けなしコレクションの要素。コレクションをリクエストすると、アイテムはランダムな順序で表示されることがあります(例:順序付けなし)。**
あなたの例では、コメントが発注されています。
**私はランダムが順序付けされていないものと同じではないことを知っていますが、その点を説明しています。
ちょうどAriejanの答えを拡張してください。
リストの順序です。 Rubyの配列に似ています。キューとアイテムの順序を保持するために使用されます。
セット - 順序付けられていないリスト。 は、RubyのArrayに似ていますが、高速検索のために最適化されています。が動作します。
コレクション - 参照と組み合わせて使用すると、関連付けを表す簡単な方法が提供されます。
本質的に、コレクションと参照は、関連付けを扱う便利なメソッドです。だから、この:
class Post < Ohm::Model
attribute :title
attribute :body
collection :comments, Comment
end
class Comment < Ohm::Model
attribute :body
reference :post, Post
end
は、以下のショートカットです:
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
あなたの設計上の選択の根拠について、元の質問に答えるために - コレクションと参照は関連を表現するためのシンプルなAPIを提供するために導入されました。
セットはどうですか? –