ĮvadasIki šiol aš padariau du ar tris projektus, įskaitant švietimą, forumus ir TVS, ir kiekvienas projektas naudoja komentarų funkciją, todėl noriu išimti komentarų skyrių atskirai ir padaryti jį į komponentinį modulį. Tai ne tik taupo kūrimo darbus, bet ir leidžia geriau suprasti šio modulio funkcijas. Kadangi šiuo metu daugiausia kuriu su TP sistema, šie pavyzdžiai bus pateikti TP sistemos sintaksėje. Bet iš tikrųjų aš asmeniškai jaučiu, kad pagrindinė metodo dalis yra nepakankama, ir aš nepasinaudojau asociacijos modelio funkcija. Tai įgyvendinsiu kitame atnaujinime. Pagrindinėje dalyje daugiausia papasakosiu apie kelis komentarų sistemų būdus, su kuriais iki šiol susidūriau, išanalizuosiu jų privalumus ir trūkumus bei pateiksiu duomenų lentelės dizaino ir duomenų išgavimo idėją, tikėdamasis, kad tai jums bus naudinga. Jei yra kas nors netinkamo, visi taip pat kviečiami tai ištaisyti.
Komentarų sistema
Yra trys pagrindiniai įprastų komentarų sistemų tipai: pastatas pastate, srautinio perdavimo režimas ir citavimo režimas (visus juos aš daviau savo vardus), o toliau daugiausia dėmesio skiriama šių trijų pranašumams ir trūkumams bei jų įgyvendinimui.
1. Įrengimo pastate režimas Vadinamasis pastatas pastato modelyje reiškia, kad kiekvienas komentaras užima pirmą aukštą, o visi atsakymai į komentarą rodomi pastate, pavyzdžiui, Baidu Tieba ir Jianshu komentarų sistemoje.
Pranašumą:Atsakykite į komentarus naudodami sutelktą vaizdą, kad būtų lengviau suprasti jų sukeltą pokalbį.
Trūkumai:Kai turinio yra per daug, tai turi būti puslapiai, o tai yra sudėtingiau.
Duomenų lapo dizainas:
- ID (savarankiškai pridėtas pirminis raktas)
- target_id (komentaro temos ID, kurį prireikus galima pakeisti į article_id, course_id ir kt.)
- parent_id (pagrindinis komentaras ID)
- reply_uid (Atsakydami į pagrindinį komentarą įrašykite komentuojamo asmens vartotojo ID, 0)
- UID (vartotojo ID, kuris paliko komentarą)
- turinys (Komentaro turinys)
- Kitos sritys... (Laikas, būsena ir kt.)
Užpakalinė verslo logika:
2. Srauto režimas
Srauto režimas, kaip rodo pavadinimas, yra panašus į informacijos srautą, nesvarbu, ar tai komentaras, ar atsakymas, kiekvienas pranešimas užima sluoksnį, pavyzdžiui, laravel-China bendruomenės komentarų sistemą.
Pranašumą:Logika paprasta ir lengvai įgyvendinama
Trūkumai:Dialogo turinys negali būti pateiktas centralizuotai, ir nėra lengva suprasti dialogo turinį.
Duomenų lapo dizainas:
- ID (savarankiškai pridėtas pirminis raktas)
- target_id (komentaro temos ID, kurį prireikus galima pakeisti į article_id, course_id ir kt.)
- reply_uid (Atsakydami į pagrindinį komentarą įrašykite komentuojamo asmens vartotojo ID, 0)
- UID (vartotojo ID, kuris paliko komentarą)
- turinys (Komentaro turinys)
- Kitos sritys... (Laikas, būsena ir kt.)
Užpakalinė verslo logika
3. Citavimo režimas
Citavimo režimas yra panašus į srautinio perdavimo režimą, išskyrus tai, kad atsakymo turinys skelbiamas kartu su cituojamu turiniu.
Pranašumą:Supratimas, į kurį komentarą skirtas atsakymas, gali padėti suprasti, apie ką kalbama. Tai gana lengva įgyvendinti.
Trūkumai:Panašiai kaip srauto režimas, jis neatspindi viso pokalbio. Analizuojant privalumus ir trūkumus, galima nustatyti, kad atskaitos modelis yra kompromisas tarp pastato viduje esančio pastato ir srauto režimo.
Duomenų lapo dizainas:
- ID (savarankiškai pridėtas pirminis raktas)
- target_id (komentaro temos ID, kurį prireikus galima pakeisti į article_id, course_id ir kt.)
- reply_id (komentaro ID komentaras, pagrindinis komentaras yra 0)
- UID (vartotojo ID, kuris paliko komentarą)
- turinys (Komentaro turinys)
- Kitos sritys... (Laikas, būsena ir kt.)
Užpakalinė verslo logika:
Norėdami gauti atsiliepimų sąrašą, galite prijungti komentarų lentelę, kad gautumėte vartotojo informaciją ir komentarus, kuriuose cituojami komentarai. Tada atlikite paprastą puslapių nustatymo procesą.
Aukščiau pateikta preliminari trijų komentarų režimų santrauka, stiliaus dalis dar nebuvo sutvarkyta, o baigus tinklaraščio projektą taip pat bus pridėta priekinės dalies stiliaus dalis. Dėl aukščiau pateikto turinio, jei yra kokių nors trūkumų, tikiuosi, kad pateiksite patarimų.
|