自定义论坛查询

时间:2010-10-14 21:05:42

标签: php mysql

我正在制作一个定制的论坛,并想知道我是否可以就此事得到其他一些想法和意见。

我想知道什么是最有效的MySQL查询来实现以下目标。

  1. 查找所有类别。这些会将其父论坛_id列为“0”。
  2. 查找所有论坛。这些会将其父论坛_id列为类别ID。
  3. 查找所有子论坛。这些会将其父论坛_id列为论坛ID。
  4. 查找每个论坛(包括其子论坛)的帖子总数。
  5. 查找每个论坛(包括其子论坛)的主题总数。
  6. 查找论坛的最后发布信息(时间,主题,海报)(包括其子论坛)。
  7. 这可能吗?

2 个答案:

答案 0 :(得分:1)

使用已经创建的所有论坛软件,滚动自己的论坛软件不太可能是最好的答案。在不知道支持论坛的表格结构的情况下,除了说“是的,它们是可能的”之外,很难就查询提出建议。但搜索的最佳方式包括Sphinx

答案 1 :(得分:1)

您需要将查询设计与应用程序(和表)设计更加完全分开。您在那里列出(至少)六个查询,其中大部分都是由ORM理想生成的。

我还可以看到你可能成为最常见的论坛软件错误的牺牲品:不可扩展的表格设计。大多数论坛软件都会发布帖子,其中包含对其父帖,帖子和论坛的引用。这意味着每个线程的查询数量与线程深度成正比。我已经看到论坛软件因为这个限制而死亡。存储线程的最有效方法是nested set model

这引出了我的下一个问题:你想通过编写论坛软件来实现什么目标?你需要一个论坛吗?为什么不安装其中的一个实现(尽管存在缺陷)?或者你是在学习练习之后?或者需要论坛软件,它必须在内部编写(这是不寻常的:大多数军团会买东西而不是那样做)?