2

我对 mongodb/mongoid 非常陌生,并且想知道构建一个使用户能够审查产品的系统的最佳方法。User 和 Product 将是单独的集合。但是他们都需要访问 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

谢谢

4

1 回答 1

0

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

用户模型

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
于 2012-11-20T06:52:54.200 回答