sql >> Database >  >> NoSQL >> MongoDB

Modelattribuut bevat verzameling van object

Ik heb acts_as_list gebruikt voor het zeer succesvol implementeren van sorteerbare objecten. Bovendien zou ik de elementen van een pagina abstraheren in een apart model, hier PageElement genoemd .

Ik denk dat het niet nodig is om over te schakelen naar een NoSQL-database (hoewel ik niets tegen deze aanpak heb). Hier is een ruwe schets van wat ik denk:

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. Wat is Hadoop OutputFormat in MapReduce?

  2. 3 manieren om de week van een date te krijgen in MongoDB

  3. Indexeren op verschillende velden in mongoDB

  4. Kan docker mongo-afbeelding niet starten in Windows