předmluvaZatím jsem dělal dva nebo tři projekty, včetně vzdělávání, fór a CMS, a každý projekt používá funkci komentářů, takže chci sekci komentářů vyjmout zvlášť a udělat z ní komponentizovaný modul. Nejenže šetří práci na vývoji, ale také vám umožňuje lépe pochopit funkce tohoto modulu. Protože momentálně vyvíjím hlavně s TP frameworkem, následující příklady budou představeny v syntaxi TP frameworku. Ve skutečnosti ale osobně cítím, že část základní metody je nedostatečná a nevyužil jsem funkci asociačního modelu. Tohle zavedu v příští aktualizaci. V hlavní části vám hlavně povím o několika režimech komentářových systémů, se kterými jsem se dosud setkal, analyzuji jejich výhody a nevýhody a poskytnu představu o návrhu datových tabulek a extrakci dat, s nadějí, že vám budu užitečný. Pokud je něco nevhodného, každý je vítán, aby to opravil.
Systém komentářů
Existují tři hlavní typy systémů společných komentářů: stavba v budově, režim streamování a režim citací (všechny jsem si dal svá jména), přičemž následující se zaměřuje na výhody a nevýhody těchto tří a na to, jak je implementovat.
1. Režim stavby v budově Takzvaný model budovy v budově znamená, že každý komentář zabírá první patro a všechny odpovědi na komentář jsou zobrazeny v budově, například systém komentářů Baidu Tieba a Jianshu.
Výhoda:Odpovídejte na komentáře s jasným pohledem, který usnadňuje pochopení konverzace, kterou vyvolávají.
Nevýhody:Když je obsahu příliš mnoho, je potřeba stránkování, což je složitější.
Návrh technických listů:
- id (samopřidaný primární klíč)
- target_id (ID tématu komentáře, které lze podle potřeby změnit na article_id, course_id atd.)
- parent_id (hlavní ID komentáře)
- reply_uid (Zaznamenejte uživatelské ID komentovaného, 0 při odpovídání na hlavní komentář)
- UID (Uživatelské ID, kdo zanechal komentář)
- Obsah (Obsah komentářů)
- Jiné obory... (Čas, status atd.)
Logika backendu:
2. Režim toku
Režim flow, jak název napovídá, je podobný toku informací, ať už jde o komentář nebo odpověď, každá zpráva zabírá vrstvu, například komentářový systém komunity laravel-China.
Výhoda:Logika je jednoduchá a snadno proveditelná
Nevýhody:Obsah dialogu nelze prezentovat centrálně a není snadné pochopit jeho obsah.
Návrh technických listů:
- id (samopřidaný primární klíč)
- target_id (ID tématu komentáře, které lze podle potřeby změnit na article_id, course_id atd.)
- reply_uid (Zaznamenejte uživatelské ID komentovaného, 0 při odpovídání na hlavní komentář)
- UID (Uživatelské ID, kdo zanechal komentář)
- Obsah (Obsah komentářů)
- Jiné obory... (Čas, status atd.)
Logika back-endu
3. Režim citací
Režim citací je podobný režimu streamování, s tím rozdílem, že obsah odpovědi je publikován spolu s citovaným materiálem.
Výhoda:Pochopení, na který komentář je odpověď zaměřena, vám může pomoci pochopit, o čem konverzace je. Je poměrně snadné ji zavést.
Nevýhody:Podobně jako Stream Mode nereprezentuje celý rozhovor v plné hloubce. Analýzou výhod a nevýhod lze zjistit, že referenční vzor je kompromisem mezi budovou uvnitř budovy a režimem toku.
Návrh technických listů:
- id (samopřidaný primární klíč)
- target_id (ID tématu komentáře, které lze podle potřeby změnit na article_id, course_id atd.)
- reply_id (ID komentáře komentovaného, hlavní komentář je 0)
- UID (Uživatelské ID, kdo zanechal komentář)
- Obsah (Obsah komentářů)
- Jiné obory... (Čas, status atd.)
Logika backendu:
Pro získání seznamu recenzí můžete připojit tabulku komentářů a získat uživatelské informace a komentáře, které komentáře citují. Pak provedete jednoduchý proces stránkování.
Výše uvedené je předběžným shrnutím tří komentářových režimů, stylová část ještě není vyřešena a po dokončení blogového projektu bude přidána i front-end stylová část. Pokud jsou v obsahu výše uvedené, doufám, že poskytnete nějaké rady.
|