MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Atrybut modelu zawiera kolekcję obiektu

Użyłem acts_as_list do bardzo pomyślnego wdrażania obiektów sortowalnych. Dodatkowo wyodrębniłbym elementy strony do osobnego modelu, tutaj o nazwie PageElement .

Myślę, że nie ma potrzeby przechodzenia na bazę danych NoSQL (chociaż nie mam nic przeciwko temu podejściu). Oto przybliżony szkic tego, o czym myślę:

class Page < ActiveRecord::Base
  has_many :page_elements, :order => 'position'
  has_many :todo_lists,  :through => :page_elements, :source => :element, :source_type => 'TodoList'
  has_many :notes,       :through => :page_elements, :source => :element, :source_type => 'Note'
  has_many :files,       :through => :page_elements, :source => :element, :source_type => 'File'
  has_many :discussions, :through => :page_elements, :source => :element, :source_type => 'Discussion'
end

class PageElement < ActiveRecord::Base
  belongs_to :page
  belongs_to :element, :polymorphic => true
  acts_as_list :scope => :page
end

class TodoList < ActiveRecord::Base
  has_one :page_element, :as => :element
  has_one :page, :through => :page_elements 
end

class Note < ActiveRecord::Base
  has_one :page_element, :as => :element
  has_one :page, :through => :page_elements 
end

class File < ActiveRecord::Base
  has_one :page_element, :as => :element
  has_one :page, :through => :page_elements 
end

class Discussion < ActiveRecord::Base
  has_one :page_element, :as => :element
  has_one :page, :through => :page_elements 
end



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak zrzucić całą bazę danych MongoDB jako text/json?

  2. Wiosna:Czy klasa może być zarówno @Document, jak i @Table?

  3. 3 sposoby na uzyskanie tygodnia z daty w MongoDB

  4. Nie można utworzyć indeksu z powodu błędu TypeError:za mało argumentów dla ciągu formatu

  5. Grupowanie warunkowe z $istnieje wewnątrz $cond