如何设计类似于Quora主题的合并操作?

时间:2016-12-18 05:41:32

标签: architecture wiki application-design quora

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

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

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

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

问题是

合并发生时应该执行哪些操作,如果合并的主题被添加到其下的所有问题中,或者保留所有内容,只需添加合并主题的引用

当显示与主题相关的答案时,搜索主题的引用ID并循环合并的引用ID。

1 个答案:

答案 0 :(得分:0)

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

这样,只有一个主题副本存在,并在任何系统正在进行搜索,存储或负责分发时编入索引。

对主题的引用应该保持独立,并且在每次合并时,都应该重新创建文档

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

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