1

我正在尝试设计一个用户协作构建存储库的应用程序,例如 Quora:

  • 问题将有主题(由主题 ID 引用)。
  • 每个主题可以有父主题和子主题(由主题 id 引用)。

我试图了解如何设计合并操作。

  • 用户应该能够将一个合并到另一个(将维护合并日志)。
  • 如果发现错误,它们也应该能够取消合并。
  • 当想找到与某个主题相关的答案时,我应该能够从当前主题和合并到该主题中的答案中获得答案。
  • 当我访问问题时,只有合并的主题应该可见。

问题是

合并发生时应该执行哪些操作,应该将合并的主题添加到其下的所有问题中还是保持原样,只需添加合并主题的引用

显示与主题相关的答案时,搜索主题的参考 ID 并循环通过合并的参考 ID。

4

1 回答 1

0

做到这一点的方法是如何开发文档管理系统。因此,我们的想法是在每次合并完成时编译并提供一个文档。

这样,只有一个主题的副本存在,并且在任何一个正在执行搜索、存储或负责分发的系统中都被索引。

对主题的引用应分开保存,并且在每次合并时,应重新创建文档

由于最终一致性在这些场景中很重要(因此文档可以始终保留并从缓存中引用/取消引用)

希望这可以帮助。请查看 twitter 架构以获得接近实时的数据 http://highscalability.com/blog/2013/7/8/the-architecture-twitter-uses-to-deal-with-150m-active-users.html

于 2017-01-26T13:08:42.577 回答