我设计的螺纹消息显示PHP/MySQL应用程序的样的意见在Slashdot或Youtube-我想知道如何我应该去约订购的评论意见和分离它进入的网页因此,你可以有,也就是说,20意见到一个网页,但仍有他们的嵌套。

评论我的应用程序可以嵌套的无限量的水平,而这种结构代表使用的是什么我相信这是一个邻接关系表,单独表包含一个行为每对已经任何ascendent/后代的关系。这一关系表CHILDID,PARENTID和平在一个水平的2手段"大祖父母或外祖父母",等等。

我的问题是一个可用性对最终用户和实用性的建设一个有效的DB查询。我们认为这些选项:

  • 分裂的结果纳入网页的日期,无论在树中的位置,以便使所有评论意见在一定的日期范围将会在一起即使他们不会出现与他们的父母。任何评论而被张贴在一个类似的时间来其父母就出现在同一页上,在那些情况下,我们可以显示它们'嵌套',但是会有的意见是孤儿从他们的父母。这可能是可接受的-这是做事的方式在YouTube的意见-一个意见得多晚于其父母不会出现在同一页面为其父(如果父母不是最新的一页),而是出现与其他最新的评论意见。

  • 检索点,以便像你会穿越树。这给予的优先权,树形结构,而不是日期,虽然兄弟姐妹仍然可以按日期排序。益的是,答复总是放与他们的父母(注释他们在答复)即使父母一的页数,从最近的评论意见。这是事情是如何做上应用程序,如icanhascheezburger博客。我不喜欢的几个关于它的事情,就像,每个人都会添加一个回答什么是最大的树的分支。

  • 第三种选择是不喜欢Slashdot不会,它不单独意见,进入网页,但有一个大树-为了保持页面尺寸的管理它开始剔除较低的评级意见,而不是。

我认为首先将是最简单的数据库查询给出我的关系表,但会开放给其他想法。

一些这样的系统中,所有三种限制的筑巢级以某种方式-这是很容易做到的,一旦我们recursed超过X级的其他一切都可以结合在一起,如果他们是兄弟姐妹。例如,YouTube的评论仅呈现为一个级别。其他系统有时会说"嵌套的水平超过了"之后的5左右的水平。

有帮助吗?

解决方案

我假定你想要的嵌套的意见都没有是因为你的用户往往要读通过一个单一的线感兴趣的,在一段时间。也就是说,你有理由认为用户创建线程的连贯一致的链的思想,和/或得到讨论中的一个线程感兴趣的某些用户而不是其他。

如果是这种情况下,我不知道你为什么会想到任意分割的一线的跨页的日期(备选1).使用一个单页的剔除的低评级的意见(备选办法3)看来有点苛刻,并且可能阻碍用户发布评论。这可能是一个良好的事情,如果你已经有了一个质量观众喜欢SlashDot,但它可能是不希望对网站更典型的访问率。

也许你可以有什么样的选择2,所有的线在同一页上,但是,如果一个线程开始变得太长,它得到汇总到一个单一链接,用户一页专用于该线。另外,长线可以减少到只显示他们的标题和作者,每个这又链接到适当的地方一个专门的网页的螺纹。

我怀疑的倾向于用户员额无关的评论意见的最大的线是一个产品的用户不想被打扰的滚动周围查找线程的结束,或者找一个线程的更多合适的。通过自动实的长线,使之根线显示在一个页面上可管理的长度,可以方便用户的扫描为一个线程的兴趣和给它添加如果需要的话。

其他提示

我认为你需要的是存储层数据库中的数据。你应该开始这个的文章:文章在sitepoint 文章在MySQL的网站

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top