摘要:談談如何設計評論表的表結構前言打算使用打造一個博客的后臺,遇到了如何設計評論表的困惑,因為如果采用開放評論的模式,就會導致評論的層層嵌套,使得管理和展示都變得非常復雜。
談談mongodb如何設計評論表的表結構
前言:
打算使用node+koa+mongodb打造一個博客的后臺,遇到了如何設計評論表的困惑,因為如果采用開放評論的模式,就會導致評論的層層嵌套,使得管理和展示都變得非常復雜。通過各方探索和思考,我發現了一個非常不錯的設計方法,在此分享給大家,希望可以對同樣困惑的人給與幫助。
說明:
1.我在設計的時候不考慮評論的評論的評論這種操作,我也是借鑒了sf這個網站的設計,因為如果考慮到這層操作,這個表結構的設計就會變的相當復雜,畢竟不是群聊,而且該評論下的動態會推送給所有人,你們如果想要交流可以直接在最大的評論下評論,或者發私信,所以沒必要考慮到這一層。
2.這種設計是我個人的想法,初生牛犢,難免會有不成熟的地方,希望有不足的地方可以評論或者發私信告知我改正,方便我們學習成長。
評論表的表結構:
{ "_id" : ObjectId("597aa23add840cd4ce0681d1"), "comment_blog_id" : "blog id", "comment_user_id" : "A", "comment_content" : "A的評論", "create_time" : "2017-15-12 14:00", "comment_responses" : [ { "response_user_id" : "B", "response_user_phone" : "B的phone", "response_user_nickname" : "B的nickname", "response_content" : [ "這是B給A的評論(帶著索引index)", "這是B給A的評論(帶著索引index)", "這是B給A的評論(帶著索引index)" ], "create_time" : "2017-15-12 14:00", "get_reply" : [ "這是A給B的某一個評論的回復如果有就對應插入index對應的元素沒有就是空串", "A沒有回復B這一條就是空串", "A個神經病跳著回復了這一條評論,這數組的第三個元素就是A回復的內容" ] }, { "response_user_id" : "C", "response_user_phone" : "C的phone", "response_user_nickname" : "C的nickname", "response_content" : [ "這是C給A的評論(帶著索引index)", "這是C給A的評論(帶著索引index)", "這是C給A的評論(帶著索引index)" ], "create_time" : "2017-15-12 14:00", "get_reply" : [ "這是A給C的第index個評論的回復", "A沒有回復C這一條就是空串", "A個神經病跳著回復了這一條評論,這數組的第三個元素就是A回復的內容" ] } ] }
插入與展示的方法
1.A在B的第index條評論下回復了B,那么對應的內容就存放在get_reply[index]里面。
2.展示的時候先遍歷顯示A的評論
3.然后遍歷A里面的comment_responses數組。
4.接著遍歷comment_responses數組中的元素的response_content數組
5.以第一條為例,遍歷response_content數組顯示B給A的評論,然后檢查get_reply數組中的對應索引的元素是不是空,空代表沒有回復,不顯示,非空則跟著這條評論顯示回復。
6.以此類推即可完成顯示。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19043.html
摘要:設計一個好的并非易事,本文先從設計時最容易犯的兩個錯誤開始介紹,然后引出如何合理地設計。錯誤以為設計的依據以為設計的依據,往往是一個對應一個子,的結構同返回的數據結構保持一致或接近一致。至此,的結構設計完成。 Redux是一個非常流行的狀態管理解決方案,Redux應用執行過程中的任何一個時刻,都是一個狀態的反映。可以說,State 驅動了Redux邏輯的運轉。設計一個好的State并非...
摘要:前言在使用加載數據數據庫常見的優化操作后端掘金一索引將放第一位,不用說,這種優化方式我們一直都在悄悄使用,那便是主鍵索引。 Redis 內存壓縮實戰 - 后端 - 掘金在討論Redis內存壓縮的時候,我們需要了解一下幾個Redis的相關知識。 壓縮列表 ziplist Redis的ziplist是用一段連續的內存來存儲列表數據的一個數據結構,它的結構示例如下圖 zlbytes: 記錄整...
閱讀 3054·2023-04-26 00:40
閱讀 2391·2021-09-27 13:47
閱讀 4197·2021-09-07 10:22
閱讀 2966·2021-09-06 15:02
閱讀 3307·2021-09-04 16:45
閱讀 2484·2021-08-11 10:23
閱讀 3599·2021-07-26 23:38
閱讀 2900·2019-08-30 15:54