我是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
由于
答案 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