代码之家  ›  专栏  ›  技术社区  ›  justinl

查询“Facebook墙”功能的良好db模式和方法是什么

  •  0
  • justinl  · 技术社区  · 16 年前

    我正在写一个简单的“Facebook墙”类型的功能,用户可以在另一个人的墙上发帖,人们可以简单地回复那个墙帖,或者发布一个新的墙帖。用户无法回复回复,您只能回复原始的墙贴(就像facebook一样)

    我最初想到的mySQL db模式如下:

    post_id (pk)
    post_text (char)
    date_posted (datetime)
    is_parent (bool)
    parent_id (id of parent)
    


    如果有人发布了一个新的墙柱,则“是\父项”将设置为1,“父项\ id”将设置为空。

    如果有人向该帖子发布回复,is_parent将为0,parent_id将设置为父帖子的id。

    我的问题

    1. 如果它是好的,我如何做一个查询,将按照最近发布的顺序返回所有墙柱,同时将子项与父项分组,以便当我迭代查询结果时,父项和子项都聚集在一起。
    2 回复  |  直到 16 年前
        1
  •  1
  •   Darkerstar    16 年前

    首先 我不认为你需要两个字段来达到相同的目的。在这种情况下,家长id就足够了。当您将post_id设置为自动递增时。第一个赋值将是1,因此父项id=0将永远不会发生。您可以假设当parent_id=0时,它是一级职位。

        2
  •  0
  •   mathon12    16 年前
    1. 最近,我通过查询所有按post_id升序排序的帖子来实现这一点。然后使用一些PHP(array['parent']->数组['post']…[])。
    2. 人们应该按照第2条所述的方法来做