如何解决为什么要在数据设计中维护双向指针?
假设我有以下架构:
书籍收藏:
{
author: { ...authorObject }
}
作者集:
{
books: [{ ...bookObject}]
}
如果我已经在每个书籍文档中存储了作者信息,为什么还要在每个作者文档中存储一系列书籍?每当我想查看某个特定作者所写的所有书籍时,从书籍收藏中进行查询是否就足够了?
我在这里找到了一个类似的架构:https://www.howtographql.com/graphql-js/6-authentication/
每个链接都有一个“postedBy”字段,每个用户都有一个“links”字段。为什么要在两个地方存储相同的信息?是不是效率低下?例如,如果删除了一个链接(或上例中的一本书),您就必须更新相应用户(或作者)的文档。
只是想了解为什么我们需要在双向方向存储相同信息。感觉有点多余。
解决方法
我认为这取决于您的用例。假设您只维护将书籍数组保存在作者文档中的单向指针,如果您有一个用例需要通过某本书搜索作者,则需要对作者集合进行全集合扫描以找到所有匹配项。因此,如果对您的实际情况没有太多了解,我们可能很难评论您的数据库中 2 路指针的必要性。
This document 是您阅读的好作品。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。