论坛帖子置顶功能的设计问题
hi,all
我最近在做一个论坛的推荐功能的时候,不知道该怎么实现会比较好。
-
需求
- 管理员可以在后台编辑帖子,帖子可以被推送到首页的推荐位,版块本身的推荐位,还有全局的推荐位(就是每个版块的推荐位都要出现这个帖子)。
- 被推荐的帖子有多种属性类别,比如置顶帖、精华帖等等。
初步的实现方案
我用了三张表(common_top_recommend),让管理员可以在后台进行编辑。字段如下:
<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等
比如,查找出某一个版块的置顶帖:
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" ;
这样的话,就可以查找出当前版块的置顶贴了。
不过我觉得这样的实现可能有些问题,我参考了下discuz和phpwind的代码,好像都是通过一个display_order字段来完成位置的操作的,但具体实现细节还不是很清楚。
不知道有没更好更轻量的方案呢?
回复内容:
hi,all
我最近在做一个论坛的推荐功能的时候,不知道该怎么实现会比较好。
-
需求
- 管理员可以在后台编辑帖子,帖子可以被推送到首页的推荐位,版块本身的推荐位,还有全局的推荐位(就是每个版块的推荐位都要出现这个帖子)。
- 被推荐的帖子有多种属性类别,比如置顶帖、精华帖等等。
初步的实现方案
我用了三张表(common_top_recommend),让管理员可以在后台进行编辑。字段如下:
<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等
比如,查找出某一个版块的置顶帖:
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" ;
这样的话,就可以查找出当前版块的置顶贴了。
不过我觉得这样的实现可能有些问题,我参考了下discuz和phpwind的代码,好像都是通过一个display_order字段来完成位置的操作的,但具体实现细节还不是很清楚。
不知道有没更好更轻量的方案呢?

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Eine der wichtigsten Änderungen, die in MySQL 8.4 (der neuesten LTS-Version von 2024) eingeführt wurden, besteht darin, dass das Plugin „MySQL Native Password“ nicht mehr standardmäßig aktiviert ist. Darüber hinaus entfernt MySQL 9.0 dieses Plugin vollständig. Diese Änderung betrifft PHP und andere Apps

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Die Seite ist leer, nachdem PHP eine Verbindung zu MySQL hergestellt ist und der Grund, warum Die () -Funktion fehlschlägt. Wenn Sie die Verbindung zwischen PHP und MySQL -Datenbank lernen, begegnen Sie häufig auf einige verwirrende Dinge ...

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Arrays sind lineare Datenstrukturen, die zur Verarbeitung von Daten in der Programmierung verwendet werden. Manchmal, wenn wir Arrays verarbeiten, müssen wir dem vorhandenen Array neue Elemente hinzufügen. In diesem Artikel werden wir verschiedene Möglichkeiten diskutieren, Elemente zum Ende eines Arrays in PHP hinzuzufügen, mit Code -Beispielen, Ausgabe sowie Zeit- und Raumkomplexitätsanalyse für jede Methode. Hier sind die verschiedenen Möglichkeiten, um einem Array Elemente hinzuzufügen: Verwenden Sie quadratische Klammern [] In PHP besteht die Möglichkeit, Elemente zum Ende eines Arrays hinzuzufügen, die Verwendung von Quadratklammern []. Diese Syntax funktioniert nur in Fällen, in denen wir nur ein einzelnes Element hinzufügen möchten. Das Folgende ist die Syntax: $ array [] = Wert; Beispiel
