我应该如何构建一个评论模型,以便用户使用mongoDB / mongoid审查产品?

时间:2012-11-20 05:04:25

标签: mongodb mongoid

我是mongodb / mongoid的新手,并且想知道构建一个让用户查看产品的系统的最佳方法。用户和产品将是个人收藏。但他们都需要访问Review模型,以显示他们在用户和产品页面上所做的评论。我应该与嵌入式1(用户) - 1(评论)关系创建链接的1(产品)-N(评论)关系吗?这是正确的方法吗?

用户模型

class User
  include Mongoid::Document

  field :name, type: String
  field :email, type: String

  embeds_many :reviews, cascade_callbacks: true
end

产品型号

class Product
  include Mongoid::Document

  field :name, type: String
  field :price, type: Float

  has_many :reviews, dependent: :destroy
end

审核模式

class Review
  include Mongoid::Document

  field :rating, type: Integer

  belongs_to :product
  embedded_in :user
end

由于

1 个答案:

答案 0 :(得分:0)

它不是定义模型结构的正确方法,因为您无法直接访问嵌入式文档,并且您无法在产品和审阅之间创建refrential关系。正确的结构将是

用户模型

class User
  include Mongoid::Document

  field :name, type: String
  field :email, type: String

  has_many :reviews, dependent: :destroy
end

产品型号

class Product
  include Mongoid::Document

  field :name, type: String
  field :price, type: Float

  has_many :reviews, dependent: :destroy
end

审核模式

class Review
  include Mongoid::Document

  field :rating, type: Integer

  belongs_to :product
  belongs_to :user
end