运维开发网

ruby-on-rails – 关于简单MongoDB数据库结构的建议

运维开发网 https://www.qedev.com 2020-06-15 20:44 出处:网络 作者:运维开发网整理
我刚开始使用MongoDB和Mongoid for Rails,需要一些关于设计简单博客数据库的正确方法的建议. 我目前正在使用下面的结构,但我需要一种方法来查询给定用户编写的所有注释(关系数据库等效项将是Comment.where(‘user_id =?’,user_id)). 这是正确的设置,还是我应该将注释移到他们自己的文档中,而不是将它们嵌入到帖子中(就像我在关系数据库模式中那样)? 感谢
我刚开始使用MongoDB和Mongoid for Rails,需要一些关于设计简单博客数据库的正确方法的建议.

我目前正在使用下面的结构,但我需要一种方法来查询给定用户编写的所有注释(关系数据库等效项将是Comment.where(‘user_id =?’,user_id)).

这是正确的设置,还是我应该将注释移到他们自己的文档中,而不是将它们嵌入到帖子中(就像我在关系数据库模式中那样)?

感谢任何建议,谢谢.

数据库架构

post {
  _id: (object id)
  title: string
  body: string
  user_id: reference
  comments: [
    { _id: (object id), body: string, user_id: reference },
    { _id: (object id), body: string, user_id: reference },
    ...
  ]
}

user {
  _id: (object id)
  name: string
}

在MongoDB中,我的相应模型是:

class Post
  include Mongoid::Document
  field :title
  field :body
  embeds_many :comments
  references_one :user
end

class Comment
  include Mongoid::Document
  field :body
  embedded_in :post
  references_one :user
end

class User
  include Mongoid::Document
  field :name
  references_many :posts
end
Mongodb.org上有一篇很棒的文章,关于建模评论的各种选择.

退房:http://www.mongodb.org/display/DOCS/MongoDB+Data+Modeling+and+Rails#MongoDBDataModelingandRails-ModelingComments

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号