【发布时间】:2012-10-09 22:19:19
【问题描述】:
您推荐哪种 NoSQL 数据库以及架构如何满足以下 Web 应用程序要求。
可能有很多用户 (500k+)
每个用户都可以输入他/她的文档
每个用户每月可能会创建 10-200 个文档
每个文档都会很小(大约 100 个字)
用户可以使用自己的标签来标记文档
来自不同用户的数据不会与其他用户及其数据交互
用户可以通过标签搜索他的条目
一个用户快速访问所有条目
用户可以创建复杂的动态查询来查询他/她的数据
我的想法是使用 MongoDB。但我看到的问题是只有两个集合:users 和 entries。
在一个庞大的集合中按标签搜索对我来说似乎是个坏主意。恐怕索引的大小会非常大,因为每个用户都可以拥有自己的标签。 MongoDB 将为整个集合创建标签索引,但我将始终只通过一个用户的条目而不是所有用户的条目来搜索标签。
因此,每个用户的收藏似乎更合适,但似乎可以创建多少收藏是有限的,而且这种方法似乎也不受欢迎。
CouchDB 不支持动态查询,...
我应该如何在 MongoDB 中实现这一点?或者命名一个更合适的 NoSQL 数据库。
类似应用示例:rememberthemilk、Trello、...
【问题讨论】:
标签: mongodb database-design web-applications nosql