參考“多說”和“暢言”等評論系統(tǒng),自己使用PHP語言實現(xiàn)了一個簡單的評論系統(tǒng)。并記錄了兩種方式(遞歸方式和非遞歸方式)的實現(xiàn)過程,以及分析兩種方式的優(yōu)缺點,前端如何實現(xiàn)沒有展現(xiàn)。
首先設(shè)計數(shù)據(jù)庫如下:
創(chuàng)建測試數(shù)據(jù)如下:
具體實現(xiàn)方案如下(在ThinkPHP框架上實現(xiàn)):
1、遞歸方式
優(yōu)點:實現(xiàn)代碼簡單,而且如果評論的層級固定在5個層次以下的話,建議使用該種方法,這樣前端通過這種數(shù)據(jù)結(jié)果實現(xiàn)簡單。
缺點:如果評論的層級沒有固定的話,前端將無法展示評論信息了,而且如果層級太多的話,將會極大的消耗內(nèi)存,更要命的是每次遞歸都得查詢數(shù)據(jù)庫,性能將大大的降低。
部分數(shù)據(jù)展示如下:
2、非遞歸方式(堆棧方式實現(xiàn))
優(yōu)點:只查詢一次數(shù)據(jù)庫,性能較好??梢詫崿F(xiàn)n層級的評論,前端也能很好的展示
缺點:代碼稍微復(fù)雜,對于固定的層級評論,前端展示評論較為復(fù)雜。
數(shù)據(jù)展示效果如下:
以上內(nèi)容實現(xiàn)了簡單的評論系統(tǒng),想了解