【问题标题】:CouchDB: "Database-per-user" or "One-Database-For-All" design?CouchDB:“每个用户的数据库”还是“一个数据库”设计?
【发布时间】:2011-09-16 14:46:02
【问题描述】:

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

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

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

还有什么?

【问题讨论】:

  • 看起来你提出了两次相同的选项:1)“一个 CouchDB ... 每个用户”; 2)“用户专用数据库”。

标签: architecture couchdb


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 2011-02-14
    相关资源
    最近更新 更多