成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

評(píng)論系統(tǒng)之我見

wangym / 955人閱讀

摘要:無限級(jí)回復(fù)朋友圈也類似,只是有限制層級(jí)為級(jí)很多人會(huì)感興趣網(wǎng)易那種蓋樓的評(píng)論的實(shí)現(xiàn),實(shí)際上可以理解為是單個(gè)回復(fù)的進(jìn)化版,只是它把所有引用的回復(fù)的記錄下來了,在展示的時(shí)候進(jìn)行顯示出來而已。

相信大家在平常的系統(tǒng)開發(fā)中,或多或少會(huì)涉及到一些評(píng)論系統(tǒng)的設(shè)計(jì)。小到某些工具自己做一些備注(實(shí)際上也可以理解為評(píng)論),大到類似淘寶天貓這種,都需要一些評(píng)論的支撐。

當(dāng)然,評(píng)論有簡單,也有復(fù)雜:

簡單的當(dāng)然就是只有一層的回復(fù)了,不能對(duì)回復(fù)進(jìn)行另外的回復(fù),類似現(xiàn)在很多迷你社區(qū)帶的@系統(tǒng),可以把它看成是只有單層的回復(fù)。

稍微更進(jìn)一步的就是可以對(duì)回復(fù)進(jìn)行評(píng)論的,類似現(xiàn)在的很多XX頭條就是這樣的

稍微更進(jìn)一步的是可以對(duì)回復(fù)進(jìn)行回復(fù),即類似引用,但只可以是單層的,如朋友圈。再復(fù)雜一點(diǎn)就是可以多層級(jí)的回復(fù)了,網(wǎng)易的蓋樓就是這樣的實(shí)現(xiàn),它們的設(shè)計(jì)可以類似,只是一個(gè)字段存放的內(nèi)容的多好而已。

下面我們就針對(duì)上面的幾種評(píng)論系統(tǒng)作一下描述,當(dāng)然,只是個(gè)人之見,如有不對(duì),還請(qǐng)指出。

單層回復(fù)

單層回復(fù)就是像很多微型社區(qū)里面的@,這個(gè)可以簡單地理解為回復(fù)。@只是在保存的時(shí)候使用正則進(jìn)行相關(guān)的匹配,給那些被@的用戶發(fā)通知。

column type comment
id bigint 主鍵ID
uid bigint 用戶ID
biz_id bigint 業(yè)務(wù)ID
content text 評(píng)論內(nèi)容
biz_type tinyint 業(yè)務(wù)類型
create_time timestamp 創(chuàng)建時(shí)間
modify_time timestamp 修改時(shí)間
deleted tinyint 是否被刪除

表結(jié)構(gòu)大概就如上了,當(dāng)然,很多東西還是要根據(jù)業(yè)務(wù)來增減的,比如回復(fù)可以發(fā)圖片,那么把圖片多帶帶出來放在一個(gè)字段會(huì)容易處理得多。

回復(fù)可以評(píng)論

這是回復(fù)的進(jìn)化版,它可以對(duì)回復(fù)進(jìn)行評(píng)論,而用戶還可以對(duì)評(píng)論進(jìn)行評(píng)論,類似現(xiàn)在的一些XX頭條基本上都是這樣的。

column type comment
id bigint 主鍵
uid bigint 用戶ID
biz_id bigint 業(yè)務(wù)ID
biz_type tinyint 業(yè)務(wù)類型
content text 評(píng)論內(nèi)容
create_time timestamp 創(chuàng)建時(shí)間
modify_time timestamp 修改時(shí)間
deleted tinyint 是否被刪除
comment_id bigint 回復(fù)ID
parent_id bigint 父ID

表結(jié)構(gòu)大概跟上面的基礎(chǔ)版類似,只是增加了一個(gè)comment_id,它用于記錄需要評(píng)論的回復(fù)ID(只有是評(píng)論的情況下才有值),而parent_id用于記錄評(píng)論的父評(píng)論ID,只有當(dāng)對(duì)評(píng)論進(jìn)行評(píng)論的時(shí)候,這個(gè)值才會(huì)大于0。

無限級(jí)回復(fù)(朋友圈也類似,只是有限制層級(jí)為1級(jí))

很多人會(huì)感興趣網(wǎng)易那種蓋樓的評(píng)論的實(shí)現(xiàn),實(shí)際上可以理解為是單個(gè)回復(fù)的進(jìn)化版,只是它把所有引用的回復(fù)的ID記錄下來了,在展示的時(shí)候進(jìn)行顯示出來而已。

column type comment
id bigint 主鍵
uid bigint 用戶ID
biz_id bigint 業(yè)務(wù)ID
biz_type tinyint 業(yè)務(wù)類型
content text 評(píng)論內(nèi)容
create_time timestamp 創(chuàng)建時(shí)間
modify_time timestamp 修改時(shí)間
deleted tinyint 是否被刪除
parent_ids text 引用評(píng)論ID(按順序)

這里我們新增的是一個(gè)parent_ids列,它用于保存引用的評(píng)論ID列表,它的順序按照發(fā)表的評(píng)論的時(shí)間來排,當(dāng)我們進(jìn)行蓋樓評(píng)論的時(shí)候,會(huì)拿到之前評(píng)論的ID,查到它的parent_ids,合并生成新的parent_ids,然后就可以生成新的評(píng)論了。

評(píng)論ID->parent_ids->合并新的parent_ids>生成新的評(píng)論

設(shè)計(jì)原因

我們會(huì)看到第二種區(qū)分評(píng)論和回復(fù)的設(shè)計(jì)比第一種和第三種都麻煩一些,而且在查詢的時(shí)候也要進(jìn)行區(qū)分。而第一種和第三種實(shí)際上可以合為一個(gè)(如果parent_ids為空,則表示是第一級(jí)回復(fù),否則則表示是對(duì)回復(fù)的引用),但考慮到業(yè)務(wù)可以會(huì)有一些特殊性,在設(shè)計(jì)的時(shí)候盡量應(yīng)該區(qū)分會(huì)更好處理一些。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/11740.html

相關(guān)文章

  • 《CDN 我見》系列二:原理篇(緩存、安全)

    摘要:真正要做高性能的系統(tǒng),不僅需要在數(shù)據(jù)結(jié)構(gòu)與算法層面深入,更要從硬件操作系統(tǒng)文件系統(tǒng)底層原理等多個(gè)領(lǐng)域做更多的研究例如阿里云自研的系統(tǒng)使用了裸盤技術(shù)。 《CDN之我見》共由三個(gè)篇章組成,分為原理篇、詳解篇和隕坑篇。本篇章適合那些從未接觸過、或僅了解一些 CDN 專業(yè)術(shù)語,想深入了解和感受 CDN 究竟是什么的同學(xué)。本次由白金老師繼續(xù)為大家分享《CDN之我見》系列二,主要講解緩存是什么、工...

    maxmin 評(píng)論0 收藏0
  • 《CDN 我見》系列二:原理篇(緩存、安全)

    摘要:真正要做高性能的系統(tǒng),不僅需要在數(shù)據(jù)結(jié)構(gòu)與算法層面深入,更要從硬件操作系統(tǒng)文件系統(tǒng)底層原理等多個(gè)領(lǐng)域做更多的研究例如阿里云自研的系統(tǒng)使用了裸盤技術(shù)。 《CDN之我見》共由三個(gè)篇章組成,分為原理篇、詳解篇和隕坑篇。本篇章適合那些從未接觸過、或僅了解一些 CDN 專業(yè)術(shù)語,想深入了解和感受 CDN 究竟是什么的同學(xué)。本次由白金老師繼續(xù)為大家分享《CDN之我見》系列二,主要講解緩存是什么、工...

    rainyang 評(píng)論0 收藏0
  • Spring框架我見(六)——Spring Cloud

    摘要:系統(tǒng)中的各個(gè)微服務(wù)可被獨(dú)立部署,各個(gè)微服務(wù)之間是松耦合的。每個(gè)微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。傳統(tǒng)架構(gòu)升級(jí)困難。新的輕量級(jí)協(xié)議容器化的出現(xiàn)。熔斷處理在微服務(wù)出現(xiàn)問題時(shí)防止出現(xiàn)雪崩效應(yīng)。 聊完Spring Boot,我們來看看Spring Boot最重要的一方面的應(yīng)用——Spring Cloud。 Spring Cloud 再聊SpringCloud之前我們先聊聊微服務(wù)。 ...

    alighters 評(píng)論0 收藏0
  • 秒殺系統(tǒng)架構(gòu)如何設(shè)計(jì)我見

    摘要:即使秒殺系統(tǒng)崩潰了,也不會(huì)對(duì)網(wǎng)站造成影響。動(dòng)態(tài)生成隨機(jī)下單頁面的為了避免用戶直接訪問下單需要將動(dòng)態(tài)化,用隨機(jī)數(shù)作為參數(shù),只能秒殺開始的時(shí)候才生成。架構(gòu)設(shè)計(jì)如何控制秒殺商品頁面搶購按鈕的可用禁用。該文件不被緩存的做法隨機(jī)數(shù)。 秒殺背景 電商中為了吸引顧客、聚集人氣,經(jīng)常會(huì)策劃一些秒殺活動(dòng)?;顒?dòng)中售賣的商品,要么價(jià)格遠(yuǎn)低于市場(chǎng)價(jià)格,要么比較稀缺(如一些新發(fā)布的商品)。這些商品電商一般都會(huì)限...

    zhunjiee 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<