如何解决代表Mongodb上的“问答”功能
|| Quora上的“要求回答”功能与我面临的技术问题类似。 本质上,一个用户(建议)要求另一个用户(建议)回答一个问题(问题)。 在mongodb中表示此架构的最佳方法是什么? 我想到了这样的事情:User class stores an array called suggested questions,which stores a pair of values
Each value is \"suggester_userid | question_id\"
从检索角度来看这将是有效的,但似乎破坏了适当的架构设计。
什么是做到这一点的好方法?
解决方法
本质上,一个用户(建议)询问
(建议)另一个用户回答一个
问题(question)。
不知道我了解这个问题,但收集
{ suggester:...,suggested:...,question:...}
可能很好-可以对索引提示和建议进行索引。
, 我的应用程序中有类似的架构,我使用了不同的集合,称为“建议”
看起来像这样(Ruby Mongoid类)
class Item
include Mongoid::Document
include Mongoid::Timestamps
include Mongoid::Paranoia
field :Suggested_id,:type => BSON::ObjectId
field :Question_id,:type => BSON::ObjectId
embedded_in :user
end
这最终将转化为
User
|
_ Name
_ Other fields
_ Suggestions (embedded doc)
- Suggested_id
- Question_id
如果您认为建议限制可能超过mongo文档的大小,则可以将嵌入式文档更改为DbRef文档,因此每个用户文档将有一个关联的建议文档。因此,单个建议文档将具有user_id和用户提出的所有建议作为嵌入式文档(项目)
Suggestion
|
_ user_id
_ items
|
_ suggested_id
_ Questionid
|
_ suggested_id
_ Questionid
希望这可以帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。