最近我正在探索No
sql数据库.对于给定的问题,我需要一个关于如何以最优和最有效的方式存储数据的建议.我现在瞄准MongoDB.但是它应该与CouchDB相同.
假设我们有这3个模型:
Story:
id
title
User:
id
name
Vote:
id
story_id
user_id
我想能够问数据库这些问题:
谁投票选了这个故事?
>该用户投票的内容?
在使用关系数据库时,我正在简单的连接.问题是,如何存储这些对象的数据,以便最有效率.
例如,如果我将Vote对象存储为Stories的子收藏,则不会很容易得到信息 – “用户投票的用户”.
我建议将投票存储为每个
用户的故事列表.这样,您可以通过查看列表找出
用户投票的故事.要获得投票的
用户,您可以执行以下操作:
db.users.find({stories:story_id})
story_id是故事的_id.如果您在故事字段上创建一个索引,那么这些查询都将很快.