论坛帖子置顶功能的设计问题

WBOY
Freigeben: 2016-06-06 20:43:09
Original
1935 Leute haben es durchsucht

hi,all

我最近在做一个论坛的推荐功能的时候,不知道该怎么实现会比较好。

  • 需求

    • 管理员可以在后台编辑帖子,帖子可以被推送到首页的推荐位,版块本身的推荐位,还有全局的推荐位(就是每个版块的推荐位都要出现这个帖子)。
    • 被推荐的帖子有多种属性类别,比如置顶帖、精华帖等等。
  • 初步的实现方案
    我用了三张表(common_top_recommend),让管理员可以在后台进行编辑。字段如下:

<code class="lang-mysql"><br>-- common_top_recommend表

id  -- 自增id
post_id -- 帖子id
top_recommned_position_id --发布的位置id,关联另外一张位置表,比如首页、版块、全局等
type_id --类别id,关联另外一张类型表,比如是精华、置顶、公告等
category_id --版块id 

--common_top_recommend_position表
id  -- 自增id
name -- 显示的名字
codename -- 用来匹配的名字,比如index,category,global这样 

--common_top_recommend_type表
id -- 自增id
name -- 显示的名字
codename -- 用来匹配的名字,比如top/digest/announce等
</code>
Nach dem Login kopieren
Nach dem Login kopieren

比如,查找出某一个版块的置顶帖:

<code class="lang-mysql">select r.post_id from common_top_recommend as r left join common_top_recommend_position as p on r.top_recommned_position_id=p.id where r.category_id=1 or p.codename="global" ;
</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样的话,就可以查找出当前版块的置顶贴了。

不过我觉得这样的实现可能有些问题,我参考了下discuz和phpwind的代码,好像都是通过一个display_order字段来完成位置的操作的,但具体实现细节还不是很清楚。

不知道有没更好更轻量的方案呢?

回复内容:

hi,all

我最近在做一个论坛的推荐功能的时候,不知道该怎么实现会比较好。

  • 需求

    • 管理员可以在后台编辑帖子,帖子可以被推送到首页的推荐位,版块本身的推荐位,还有全局的推荐位(就是每个版块的推荐位都要出现这个帖子)。
    • 被推荐的帖子有多种属性类别,比如置顶帖、精华帖等等。
  • 初步的实现方案
    我用了三张表(common_top_recommend),让管理员可以在后台进行编辑。字段如下:

<code class="lang-mysql"><br>-- common_top_recommend表

id  -- 自增id
post_id -- 帖子id
top_recommned_position_id --发布的位置id,关联另外一张位置表,比如首页、版块、全局等
type_id --类别id,关联另外一张类型表,比如是精华、置顶、公告等
category_id --版块id 

--common_top_recommend_position表
id  -- 自增id
name -- 显示的名字
codename -- 用来匹配的名字,比如index,category,global这样 

--common_top_recommend_type表
id -- 自增id
name -- 显示的名字
codename -- 用来匹配的名字,比如top/digest/announce等
</code>
Nach dem Login kopieren
Nach dem Login kopieren

比如,查找出某一个版块的置顶帖:

<code class="lang-mysql">select r.post_id from common_top_recommend as r left join common_top_recommend_position as p on r.top_recommned_position_id=p.id where r.category_id=1 or p.codename="global" ;
</code>
Nach dem Login kopieren
Nach dem Login kopieren

这样的话,就可以查找出当前版块的置顶贴了。

不过我觉得这样的实现可能有些问题,我参考了下discuz和phpwind的代码,好像都是通过一个display_order字段来完成位置的操作的,但具体实现细节还不是很清楚。

不知道有没更好更轻量的方案呢?

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!