javascript - CouchDB 更新相关文档的最佳实践
问题描述
我将CouchDB和NodeJs与这些文档示例一起使用。
Role {
_id,
name
}
User {
_id,
email,
password,
role: {
_id,
name
}
}
当角色的 _id 相同时,更新角色并在用户内部执行此操作的最佳做法是什么。
这只是一个例子,在应用程序中,我们将在数据库的不同部分有多个重复文档的情况,我们需要这种更新以避免不一致。
最好的方法是什么?
解决方案
通常,您会尝试尽可能多地嵌套关系。
但是,如果您需要一对多或多对多关系,则有两种选择。
1)与_Id链接
这种方法与您在 SQL 中所做的几乎相同。它需要您执行多个查询(注意:您可以在视图中发出相关文档)。
它很容易更新(您只需更新相关文档)。Altought,获取速度较慢。
2)重复数据
另一种方法是在各处复制数据。如果要将角色链接到另一个用户,则在用户中复制该角色。
这种方法在读取时更快,但在更新时更复杂。要更新,您需要更新角色并更新每个重复的角色。
推荐阅读
- google-apps-script - 如何在大查询应用程序脚本中使用自动检测模式将字符串类型列加载为大查询表中的标题?
- python - Sphinx 找不到我的项目的根模块
- if-statement - 如何计算以逗号分隔的列表中的文本?
- python - Json 响应 pyodbc 更好的方式
- google-chrome - 谷歌浏览器是否仅根据用户 ID 保存密码?
- javascript - 如何将事件侦听器附加到文档/窗口并确保 event.target 是文档
- java - 使用二叉搜索树数据在java中递归构建字符串
- javascript - 无法使用带点的计算属性值 - 无法设置为字符串 - JS
- python - Python:为什么类的新实例假定第一个实例的属性?
- python - 如何在 Python 中进行特定的可视化