predhovorDoteraz som robil dva alebo tri projekty, vrátane vzdelávania, fór a CMS, a každý projekt používa funkciu komentárov, takže chcem sekciu komentárov vybrať samostatne a spraviť z nej komponentizovaný modul. Nielenže šetrí vývojovú prácu, ale tiež vám umožňuje lepšie pochopiť funkcie tohto modulu. Keďže momentálne vyvíjam hlavne s rámcom TP, nasledujúce príklady budú uvedené v syntaxi rámca TP. V skutočnosti však osobne cítim, že časť jadrovej metódy je nedostatočná a nevyužil som funkciu asociačného modelu. Toto implementujem v ďalšej aktualizácii. V hlavnej časti vám poviem hlavne o rôznych režimoch komentárových systémov, s ktorými som sa doteraz stretol, analyzujem ich výhody a nevýhody a poskytnem predstavu o návrhu dátových tabuliek a extrakcii dát, dúfam, že vám budem užitočný. Ak je niečo nevhodné, každý je vítaný to opraviť.
Systém komentárov
Existujú tri hlavné typy systémov spoločného komentára: stavba v budove, režim streamovania a režim citácií (všetky som si dal vlastné mená), pričom nasledujúce sa zameriava na výhody a nevýhody týchto troch a spôsob ich implementácie.
1. Režim stavby v budove Takzvaný model budovy v budove znamená, že každý komentár zaberá prvé poschodie a všetky odpovede na komentár sú zobrazené v budove, napríklad systém komentárov Baidu Tieba a Jianshu.
Výhoda:Odpovedajte na komentáre s jasným pohľadom, ktorý uľahčuje pochopenie rozhovoru, ktorý vyvolávajú.
Nevýhody:Keď je obsahu príliš veľa, musí ísť o stránkovanie, čo je zložitejšie.
Návrh dátového listu:
- id (samopridaný primárny kľúč)
- target_id (ID témy komentára, ktorú možno podľa potreby zmeniť na article_id, course_id a pod.)
- parent_id (hlavný komentár id)
- reply_uid (Zaznamenajte používateľské ID komentovaného, 0 pri odpovedaní na hlavný komentár)
- UID (Používateľské ID, ktoré zanechalo komentár)
- Obsah (Obsah komentárov)
- Iné oblasti... (Čas, stav a pod.)
Logika back-endu:
2. Režim toku
Režim toku, ako už názov napovedá, je podobný toku informácií – či už ide o komentár alebo odpoveď, každá správa zaberá vrstvu, napríklad komentárový systém komunity laravel-China.
Výhoda:Logika je jednoduchá a ľahko implementovateľná
Nevýhody:Obsah dialógu nemôže byť prezentovaný centrálne a nie je ľahké pochopiť obsah dialógu.
Návrh dátového listu:
- id (samopridaný primárny kľúč)
- target_id (ID témy komentára, ktorú možno podľa potreby zmeniť na article_id, course_id a pod.)
- reply_uid (Zaznamenajte používateľské ID komentovaného, 0 pri odpovedaní na hlavný komentár)
- UID (Používateľské ID, ktoré zanechalo komentár)
- Obsah (Obsah komentárov)
- Iné oblasti... (Čas, stav a pod.)
Back-end obchodná logika
3. Režim citácií
Režim citácií je podobný režimu streamovania, s tým rozdielom, že obsah odpovede je publikovaný spolu s citovaným obsahom.
Výhoda:Pochopenie, na ktorý komentár je odpoveď zameraná, vám môže pomôcť pochopiť, o čom je konverzácia. Implementácia je relatívne jednoduchá.
Nevýhody:Podobne ako Stream Mode, nereprezentuje celú konverzáciu v celku. Analýzou výhod a nevýhod možno zistiť, že referenčný vzor je kompromisom medzi budovou v budove a režimom toku.
Návrh dátového listu:
- id (samopridaný primárny kľúč)
- target_id (ID témy komentára, ktorú možno podľa potreby zmeniť na article_id, course_id a pod.)
- reply_id (ID komentára, hlavný komentár je 0)
- UID (Používateľské ID, ktoré zanechalo komentár)
- Obsah (Obsah komentárov)
- Iné oblasti... (Čas, stav a pod.)
Logika back-endu:
Pre získanie zoznamu recenzií môžete pripojiť tabuľku komentárov, aby ste získali používateľské informácie a komentáre, ktoré tieto komentáre citujú. Potom urobte jednoduchý paginačný proces.
Vyššie uvedené je predbežným zhrnutím troch komentárových režimov, časť štýlu ešte nie je vyriešená a po dokončení blogového projektu bude pridaná aj časť s predným štýlom. Čo sa týka vyššie uvedeného obsahu, ak sú nejaké nedostatky, dúfam, že poskytnete usmernenie.
|