2010-10-14 102 views
-2

我正在開發一個定製的論壇,並且想知道我是否能夠就此問題獲得其他一些想法和意見。自定義論壇查詢

我想知道什麼是最有效的MySQL查詢來實現以下目標。

  1. 查找所有分類。這些會將他們的父母forum_id列爲「0」。
  2. 查找所有論壇。這些將列出他們的父母forum_id作爲類別ID。
  3. 查找所有子論壇。這些將列出他們的父母forum_id作爲論壇ID。
  4. 查找每個論壇的帖子總數(包括他們的子論壇)。
  5. 查找每個論壇的主題總數(包括他們的子論壇)。
  6. 找到論壇(包括他們的子論壇)的最新帖子信息(時間,主題,海報)。

這可能嗎?

+3

你試過了... SELECT? – Robus 2010-10-14 21:08:32

+0

你是在開玩笑吧? – 2010-10-14 21:09:19

+0

Begon巨魔。如果你不明白這個問題,請不要回答。 – Cory 2010-10-14 22:44:45

回答

1

隨着所有的論壇軟件已經創建,它是不可能的,滾動自己是最好的答案。如果不知道支持論壇的表格結構,除了說「是的,它們是可能的」之外,很難對查詢提供建議。但搜索的最佳方式將涉及諸如Sphinx之類的內容。

+0

我知道表結構如何工作。我目前得到了該腳本的工作。我只是想弄清楚是否有更有效的方式去做。目前我使用SmartyPHP作爲模板系統,我在模板中使用嵌套的foreach,並使用嵌套數組生成論壇結構。 $ smarty-> assign('forums',array('category',array('forum',array('subforum'))); – Cory 2010-10-14 22:52:18

1

您需要更充分地將您的查詢設計與應用程序(和表)設計分開。您在此列出(至少)六個查詢,其中大部分將由ORM理想地生成。

我還可以看到你可能會陷入最常見的論壇軟件錯誤的犧牲品:不可擴展的表格設計。大多數論壇軟件都會存儲與他們的父帖子,主題和論壇相關的帖子。這意味着每個線程的查詢數量與線程深度成正比。由於這個限制,我見過論壇軟件死掉。存儲線程的最有效方法是nested set model

這引出了我的下一個問題:你想通過編寫論壇軟件來實現什麼?你是否需要論壇?爲什麼不安裝其中的一個實現(儘管存在缺陷)?或者你在學習之後?或者需要論壇軟件,它必須在內部編寫(這是不尋常的:大多數軍團會購買一些東西,而不是那樣做)?

+0

感謝您的回覆。 。我實際上開發了舊的vBulletin的mod。我不喜歡新的vBulletin和公司的發展方向,儘管一些老開發者創建了一個新的論壇 我對設計很挑剔我非常喜歡舊的IPB佈局。我覺得他們是最好的組織和最好看的模板。 – Cory 2010-10-14 23:00:09