首页 > 解决方案 > CouchDB 更新相关文档的最佳实践

问题描述

我将CouchDBNodeJs与这些文档示例一起使用。

Role {
  _id,
  name
}

User {
  _id,
  email,
  password,
  role: {
    _id,
    name
  }
}

当角色的 _id 相同时,更新角色并在用户内部执行此操作的最佳做​​法是什么。

这只是一个例子,在应用程序中,我们将在数据库的不同部分有多个重复文档的情况,我们需要这种更新以避免不一致。

最好的方法是什么?

标签: javascriptnode.jsnosqlcouchdbupdates

解决方案


通常,您会尝试尽可能多地嵌套关系。

但是,如果您需要一对多或多对多关系,则有两种选择。

1)与_Id链接

这种方法与您在 SQL 中所做的几乎相同。它需要您执行多个查询(注意:您可以在视图中发出相关文档)。

它很容易更新(您只需更新相关文档)。Altought,获取速度较慢。

2)重复数据

另一种方法是在各处复制数据。如果要将角色链接到另一个用户,则在用户中复制该角色。

这种方法在读取时更快,但在更新时更复杂。要更新,您需要更新角色并更新每个重复的角色。


推荐阅读