关于知乎的话题组织结构,数据表应该如何设计?

最近在朋友的邀请下注册了知乎,确实是一个不错的开放平台。
这里想来讨论一下知乎的“话题”结构。

简单分析一下:

  • 1个话题可以有多个之话题,也可以有多个父话题。
    我的理解这个一个类似N叉树的结构。任意只话题可以有多个线路到达顶级节点,每个话题也存在多个子节点。
  • 限制:如果a是b的子节点,那么在b节点的上面就不能够在添加a节点,反之也是。

那么,这样的技术实现。数据库表应该如何设计呢?表结构初定3个字段

阅读 11.1k
2 个回答
表:话题s
ID    名称
 1      a
 2      b
 3      c
 4      d
表:话题-父s
ID    父ID
 2      1
 3      1
 4      2
 4      3

         a
        / \
       b   c
       \  /
         d

a直接子:b c
b直接子:d
c直接子:d

知乎话题是采用“有根无循环的有向图(Rooted Acyclic Directed Graph)”结构做的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏