Heim Backend-Entwicklung PHP-Tutorial So entwerfen Sie die MySQL-Tabellenstruktur für die verschachtelte Anzeige von Artikelkommentaren (in Form von NetEase-Newskommentaren)

So entwerfen Sie die MySQL-Tabellenstruktur für die verschachtelte Anzeige von Artikelkommentaren (in Form von NetEase-Newskommentaren)

Dec 01, 2016 am 12:56 AM
mysql php

Jetzt gibt es eine Beitragstabelle (die Struktur kann nicht geändert werden)
TID-Thema-PID
PID-Antwort-ID

Jetzt wird eine neue Funktion zur Anzeige von Kommentarverschachtelungen hinzugefügt, d. h. tid=1
a hat einen Kommentar mit einer PID von 1 kommentiert
b hat auf den Kommentar von a mit einer PID von 2 geantwortet
c hat darauf geantwortet b's Kommentar mit einer PID von 2 3
d antwortete mit einer PID von 4

wird angezeigt als
pid1 im 1. Stock
pid1, pid2 im 2. Stock
pid1, pid2, pid3 im 3. Stock
pid1, pid4 im 4. Stock
Das Das heißt, jede Antwort an andere muss zitiert werden. Alle vorherigen Antworten.
(Das Format ist das gleiche wie bei den Kommentaren zu NetEase News)
Ich denke derzeit an eine Struktur, die post_conversation pid, to_pid ist
Auf diese Weise wird die Antwort im 2. Stock 2,1 einfügen

<code> 3楼回复就插入两条     3,1
                     3,2
 4楼回复就插入         4,1          </code>
Nach dem Login kopieren
Nach dem Login kopieren

Wenn im 99. Stock ein Gespräch stattfindet, müssen 98 Daten eingegeben werden

<code>这样有个好处就是可以很方便取出任意一个pid的评论情况
select topid from post_conversation  where pid = 'xxx' order by pid ;
但是会造成多的重复数据  一个99楼对话得插入1+2+3+。。。+99条
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Wenn post_conversation so gestaltet ist
pid, parent_pid (die PID, auf die geantwortet wird)
Die Datenmenge ist gering (für jede Antwort wird nur eine Nachricht eingefügt);
Aber es werden alle Konversationen abgefragt Jede PID ist ein sehr schwieriges Problem (ich denke darüber nach, die Datenbank rekursiv abzufragen).

<code>select parent_pid from post_conversation  where pid = 'xxx'
    select parent_pid from post_conversation  where pid = 'parent_pid '
        ...
        一直到parent_pid 为0为止,查询出所有的对话pid
</code>
Nach dem Login kopieren
Nach dem Login kopieren
Haben Sie gute Vorschläge?

Antwortinhalt:

Jetzt gibt es eine Beitragstabelle (die Struktur kann nicht geändert werden)

TID-Thema-PID
PID-Antwort-ID

Jetzt wird eine neue Funktion zur Anzeige von Kommentarverschachtelungen hinzugefügt, d. h. tid=1

a hat einen Kommentar mit einer PID von 1 kommentiert
b hat auf den Kommentar von a mit einer PID von 2 geantwortet
c hat darauf geantwortet b's Kommentar mit einer PID von 3
d antwortete mit einer PID von 4

wird angezeigt als

pid1 im 1. Stock
pid1, pid2 im 2. Stock
pid1, pid2, pid3 im 3. Stock
pid1, pid4 im 4. Stock
Das Das heißt, jede Antwort an andere muss zitiert werden. Alle vorherigen Antworten.
(Das Format ist das gleiche wie bei den Kommentaren zu NetEase News)
Ich denke derzeit an eine Struktur, die post_conversation pid, to_pid ist
Auf diese Weise wird die Antwort im 2. Stock 2,1 einfügen

<code> 3楼回复就插入两条     3,1
                     3,2
 4楼回复就插入         4,1          </code>
Nach dem Login kopieren
Nach dem Login kopieren
Wenn im 99. Stock ein Gespräch stattfindet, müssen 98 Daten eingegeben werden

<code>这样有个好处就是可以很方便取出任意一个pid的评论情况
select topid from post_conversation  where pid = 'xxx' order by pid ;
但是会造成多的重复数据  一个99楼对话得插入1+2+3+。。。+99条
</code>
Nach dem Login kopieren
Nach dem Login kopieren
Wenn post_conversation so gestaltet ist

pid, parent_pid (die PID, auf die geantwortet wird)
Die Datenmenge ist gering (für jede Antwort wird nur eine Nachricht eingefügt);
Aber es werden alle Konversationen abgefragt Jede PID ist ein sehr schwieriges Problem (ich denke darüber nach, die Datenbank rekursiv abzufragen).

Haben Sie gute Vorschläge?
<code>select parent_pid from post_conversation  where pid = 'xxx'
    select parent_pid from post_conversation  where pid = 'parent_pid '
        ...
        一直到parent_pid 为0为止,查询出所有的对话pid
</code>
Nach dem Login kopieren
Nach dem Login kopieren

Danke für die Einladung

Früher habe ich die primitivste rekursive Abfragemethode verwendet, um eine unendliche Verschachtelung (Menüs, Kommentare) zu erreichen. Später habe ich einen Artikel gesehen, der vom Administrator in der Laravel-China-Community gepostet wurde. Die Artikeladresse lautet https://laravel-china.org/topics/2124. Er verwendet

, um ein unendliches baumartiges hierarchisches Modell zu implementieren (Tag System, Menüsystem, Kommentarsystem usw.). Das Thema kann sich auf Folgendes beziehen.
预排序遍历树算法(Nested set model)

„Kommentare zitieren“ ist relativ aufwändig zu implementieren und weist viele Redundanzen auf. Sie können stattdessen die Verwendung von „Antworten auf Kommentare“ in Betracht ziehen:

Ein Artikel entspricht mehreren Kommentaren und ein Kommentar entspricht mehreren Antworten.

Q&A-Community segmentfault.com und Tencent News verwenden beide „Antworten auf Kommentare“.
Nehmen Sie segmentfault als Beispiel:
Der Fragesteller (der Originalposter) hat eine Frage gepostet, und diese Frage hat mehrere Antworten (der Bodenbesitzer). ). Die Datenbank ist eine Eins-zu-Viele-Beziehung.
Jede Antwort kann mehrere Antworten haben, was ebenfalls eine Eins-zu-Viele-Beziehung ist.

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP und Python: Vergleich von zwei beliebten Programmiersprachen PHP und Python: Vergleich von zwei beliebten Programmiersprachen Apr 14, 2025 am 12:13 AM

PHP und Python haben jeweils ihre eigenen Vorteile und wählen nach den Projektanforderungen. 1.PHP ist für die Webentwicklung geeignet, insbesondere für die schnelle Entwicklung und Wartung von Websites. 2. Python eignet sich für Datenwissenschaft, maschinelles Lernen und künstliche Intelligenz mit prägnanter Syntax und für Anfänger.

PHP: Eine Schlüsselsprache für die Webentwicklung PHP: Eine Schlüsselsprache für die Webentwicklung Apr 13, 2025 am 12:08 AM

PHP ist eine Skriptsprache, die auf der Serverseite weit verbreitet ist und insbesondere für die Webentwicklung geeignet ist. 1.PHP kann HTML einbetten, HTTP -Anforderungen und Antworten verarbeiten und eine Vielzahl von Datenbanken unterstützt. 2.PHP wird verwendet, um dynamische Webinhalte, Prozessformdaten, Zugriffsdatenbanken usw. mit starker Community -Unterstützung und Open -Source -Ressourcen zu generieren. 3. PHP ist eine interpretierte Sprache, und der Ausführungsprozess umfasst lexikalische Analyse, grammatikalische Analyse, Zusammenstellung und Ausführung. 4.PHP kann mit MySQL für erweiterte Anwendungen wie Benutzerregistrierungssysteme kombiniert werden. 5. Beim Debuggen von PHP können Sie Funktionen wie error_reporting () und var_dump () verwenden. 6. Optimieren Sie den PHP-Code, um Caching-Mechanismen zu verwenden, Datenbankabfragen zu optimieren und integrierte Funktionen zu verwenden. 7

Der aktuelle Status von PHP: Ein Blick auf Webentwicklungstrends Der aktuelle Status von PHP: Ein Blick auf Webentwicklungstrends Apr 13, 2025 am 12:20 AM

PHP bleibt in der modernen Webentwicklung wichtig, insbesondere in Content-Management- und E-Commerce-Plattformen. 1) PHP hat ein reichhaltiges Ökosystem und eine starke Rahmenunterstützung wie Laravel und Symfony. 2) Die Leistungsoptimierung kann durch OPCACHE und NGINX erreicht werden. 3) Php8.0 führt den JIT -Compiler ein, um die Leistung zu verbessern. 4) Cloud-native Anwendungen werden über Docker und Kubernetes bereitgestellt, um die Flexibilität und Skalierbarkeit zu verbessern.

Php gegen andere Sprachen: Ein Vergleich Php gegen andere Sprachen: Ein Vergleich Apr 13, 2025 am 12:19 AM

PHP eignet sich für die Webentwicklung, insbesondere für die schnelle Entwicklung und Verarbeitung dynamischer Inhalte, ist jedoch nicht gut in Anwendungen auf Datenwissenschaft und Unternehmensebene. Im Vergleich zu Python hat PHP mehr Vorteile in der Webentwicklung, ist aber nicht so gut wie Python im Bereich der Datenwissenschaft. Im Vergleich zu Java wird PHP in Anwendungen auf Unternehmensebene schlechter, ist jedoch flexibler in der Webentwicklung. Im Vergleich zu JavaScript ist PHP in der Back-End-Entwicklung präziser, ist jedoch in der Front-End-Entwicklung nicht so gut wie JavaScript.

Mysqls Platz: Datenbanken und Programmierung Mysqls Platz: Datenbanken und Programmierung Apr 13, 2025 am 12:18 AM

Die Position von MySQL in Datenbanken und Programmierung ist sehr wichtig. Es handelt sich um ein Open -Source -Verwaltungssystem für relationale Datenbankverwaltung, das in verschiedenen Anwendungsszenarien häufig verwendet wird. 1) MySQL bietet effiziente Datenspeicher-, Organisations- und Abruffunktionen und unterstützt Systeme für Web-, Mobil- und Unternehmensebene. 2) Es verwendet eine Client-Server-Architektur, unterstützt mehrere Speichermotoren und Indexoptimierung. 3) Zu den grundlegenden Verwendungen gehören das Erstellen von Tabellen und das Einfügen von Daten, und erweiterte Verwendungen beinhalten Multi-Table-Verknüpfungen und komplexe Abfragen. 4) Häufig gestellte Fragen wie SQL -Syntaxfehler und Leistungsprobleme können durch den Befehl erklären und langsam abfragen. 5) Die Leistungsoptimierungsmethoden umfassen die rationale Verwendung von Indizes, eine optimierte Abfrage und die Verwendung von Caches. Zu den Best Practices gehört die Verwendung von Transaktionen und vorbereiteten Staten

Die dauerhafte Relevanz von PHP: Ist es noch am Leben? Die dauerhafte Relevanz von PHP: Ist es noch am Leben? Apr 14, 2025 am 12:12 AM

PHP ist immer noch dynamisch und nimmt immer noch eine wichtige Position im Bereich der modernen Programmierung ein. 1) Einfachheit und leistungsstarke Unterstützung von PHP machen es in der Webentwicklung weit verbreitet. 2) Seine Flexibilität und Stabilität machen es ausstehend bei der Behandlung von Webformularen, Datenbankoperationen und Dateiverarbeitung; 3) PHP entwickelt sich ständig weiter und optimiert, geeignet für Anfänger und erfahrene Entwickler.

PHP vs. Python: Kernmerkmale und Funktionen PHP vs. Python: Kernmerkmale und Funktionen Apr 13, 2025 am 12:16 AM

PHP und Python haben jeweils ihre eigenen Vorteile und eignen sich für verschiedene Szenarien. 1.PHP ist für die Webentwicklung geeignet und bietet integrierte Webserver und reichhaltige Funktionsbibliotheken. 2. Python eignet sich für Datenwissenschaft und maschinelles Lernen mit prägnanter Syntax und einer leistungsstarken Standardbibliothek. Bei der Auswahl sollte anhand der Projektanforderungen festgelegt werden.

Zweck von PHP: Erstellen dynamischer Websites Zweck von PHP: Erstellen dynamischer Websites Apr 15, 2025 am 12:18 AM

PHP wird verwendet, um dynamische Websites zu erstellen. Zu den Kernfunktionen gehören: 1. Dynamische Inhalte generieren und Webseiten in Echtzeit generieren, indem Sie eine Verbindung mit der Datenbank herstellen; 2. Verarbeiten Sie Benutzerinteraktions- und Formulareinreichungen, überprüfen Sie Eingaben und reagieren Sie auf Operationen. 3. Verwalten Sie Sitzungen und Benutzerauthentifizierung, um eine personalisierte Erfahrung zu bieten. 4. Optimieren Sie die Leistung und befolgen Sie die Best Practices, um die Effizienz und Sicherheit der Website zu verbessern.

See all articles