CouchDB:“每用户数据库”还是“One-Database-For-All”设计?

时间:2011-09-16 14:46:03

标签: architecture couchdb

我正在构建一个简单的书签应用程序,用户将在其浏览器中安装扩展程序,将本地书签同步到我们的应用程序中。

我正在使用CouchDB来存储用户数据。如果可扩展性是我的目标,那么在给定以下选项的情况下,使用CouchDB的最佳方法是什么?

  1. 拥有一个couchDB并将所有内容放入其中。
  2. 为用户创建专用数据库,并将书签存储为文档。
  3. 还有别的吗?

1 个答案:

答案 0 :(得分:14)

如果您不希望其他用户能够读取其他用户数据库的内容,则每个用户的专用数据库更为重要。这是因为CouchDB无法基于每个文档强制执行读取权限,仅适用于每个数据库。创建许多数据库的问题是您无法创建跨数据库的视图,视图只能对单个数据库中的文档进行操作。

一般经验法则:如果用户数据的隐私问题不重要,请使用一个大数据库。

注意:这仅适用于CouchDB本身。如果在CouchDB前面有另一层软件,例如代理或进行身份验证的Web框架,则可以绕过此权限限制。