<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Echo的數(shù)據(jù)庫表是如何設(shè)計(jì)的

          共 2059字,需瀏覽 5分鐘

           ·

          2021-02-28 19:11

          Echo 這個(gè)項(xiàng)目數(shù)據(jù)庫設(shè)計(jì)并不復(fù)雜,需要我們手動(dòng)設(shè)計(jì)的只有四張表:

          • 帖子表:discuss_post
          • 評(píng)論表:comment
          • 用戶表:user
          • 私信表:message

          用戶表

          解釋一下各個(gè)字段的含義:

          • id:用戶的唯一標(biāo)識(shí)
          • username:用戶名
          • password:存儲(chǔ)加鹽加密后的密碼
          • salt:隨機(jī)生成的鹽,用于密碼的加鹽加密
          • email:郵箱
          • type:用戶類型
            • 0 - 普通用戶(用戶注冊(cè)默認(rèn)是普通用戶)
            • 1 - 超級(jí)管理員:具有刪除帖子、訪問數(shù)據(jù)統(tǒng)計(jì)界面的權(quán)限
            • 2 - 版主:具有置頂、加精帖子權(quán)限
          • status:用戶狀態(tài)
            • 0 - 未激活(默認(rèn)):用戶點(diǎn)擊注冊(cè)后未點(diǎn)擊郵箱中的激活鏈接進(jìn)行驗(yàn)證,就會(huì)處于這個(gè)狀態(tài)。未激活的用戶同樣無法正常使用某些功能比如發(fā)表帖子等
            • 1 - 已激活:用戶點(diǎn)擊郵箱中的激活鏈接進(jìn)行驗(yàn)證成功,就會(huì)將狀態(tài)從未激活改成已激活
          • activation_code:激活碼。用戶點(diǎn)擊注冊(cè)后,隨機(jī)生成一串激活碼,則在本地環(huán)境下:http://localhost:8080/greatecommunity/activation/用戶id/激活碼 成為該用戶的激活鏈接;在服務(wù)器上:http://1.15.127.74/activation/用戶id/激活碼 成為該用戶的激活鏈接。點(diǎn)擊該激活鏈接則激活用戶。激活的邏輯也很簡單,就是檢查一下這個(gè)鏈接中的用戶 id 和激活碼是否和數(shù)據(jù)庫中存儲(chǔ)的一樣。

          帖子表

          解釋一下各個(gè)字段的含義:

          • id:帖子的唯一標(biāo)識(shí)
          • user_id:發(fā)表該帖子的用戶的 id
          • title:帖子標(biāo)題
          • content:帖子內(nèi)容
          • type:帖子類型
            • 0 - 普通帖子(默認(rèn))
            • 1 - 置頂帖子
          • status:帖子狀態(tài)
            • 0 - 正常(默認(rèn))
            • 1 - 精華:為帖子加精可以使其在熱度計(jì)算中得到一定的加分
            • 2 - 拉黑:管理員刪除帖子后,就將這個(gè)帖子的狀態(tài)設(shè)置為拉黑
          • create_time:帖子發(fā)表時(shí)間
          • comment_count:帖子的評(píng)論數(shù)量(因?yàn)闀?huì)頻繁的顯示帖子的信息,比如創(chuàng)建時(shí)間、創(chuàng)建人、評(píng)論數(shù)量、點(diǎn)贊數(shù)量等,創(chuàng)建時(shí)間和創(chuàng)建人信息這張表中已經(jīng)有了,所以此處再將評(píng)論數(shù)量存進(jìn)來就好??赡軙?huì)有同學(xué)會(huì)問啥不把點(diǎn)贊數(shù)量也緩存到帖子表中,因?yàn)辄c(diǎn)贊數(shù)量是存在 Redis 中的,獲取點(diǎn)贊數(shù)量咱連數(shù)據(jù)庫都不用進(jìn)的,還費(fèi)勁在這存一份干啥)
          • score:熱度 / 分?jǐn)?shù)(用于按照熱度排行帖子)

          評(píng)論表

          這個(gè)表應(yīng)該是相對(duì)來說最復(fù)雜的一張了。因?yàn)椴粌H有評(píng)論(對(duì)帖子的評(píng)論),還有對(duì)評(píng)論的回復(fù),都放在這一張表里面了。

          • id:評(píng)論/回復(fù)的唯一標(biāo)識(shí)
          • user_id:用戶 id(哪個(gè)用戶發(fā)布了這個(gè)評(píng)論/回復(fù))
          • entity_type:實(shí)體類型(表示這條 comment 是針對(duì)哪個(gè)類型的,如果是針對(duì)帖子的,那么這個(gè) comment 就是評(píng)論;如果是針對(duì)評(píng)論的,那么這條 comment 就是回復(fù))
          • entity_id:實(shí)體的 id(如果是對(duì)帖子的評(píng)論,就存儲(chǔ)帖子的 id;如果是對(duì)評(píng)論的回復(fù),就存儲(chǔ)評(píng)論的 id;還有對(duì)回復(fù)的回復(fù),存儲(chǔ)的仍然是所屬評(píng)論的 id。也就是說,「某個(gè)帖子下的所有評(píng)論,它們的 entity_id 都是這個(gè)帖子的 id。某條評(píng)論下的所有回復(fù),它們的 entity_id 都是這條評(píng)論的 id」。)
          • target_id:目標(biāo)用戶 id(表示這條評(píng)論/回復(fù)是針對(duì)哪個(gè)用戶的。比如用戶 admin 發(fā)了一個(gè)帖子,用戶 master 評(píng)論了這個(gè)帖子,那么這里的 target_id 存儲(chǔ)的就是用戶 admin 的 id。)
          • content:評(píng)論/回復(fù)的內(nèi)容
          • status:評(píng)論/回復(fù)狀態(tài)
            • 0 - 正常(默認(rèn))
            • 1 - 禁用(暫未使用)
          • create_time:評(píng)論/回復(fù)發(fā)布時(shí)間

          私信表

          這張表不僅存儲(chǔ)用戶之間的私信,也存儲(chǔ)系統(tǒng)通知,不同的是,系統(tǒng)通知的 from_id 特定為 1。用于發(fā)送系統(tǒng)通知的角色(用戶) SYSTEM 已內(nèi)置。

          下面來看私信表的結(jié)構(gòu):

          • id:私信/系統(tǒng)通知的唯一標(biāo)識(shí)
          • from_id:私信/系統(tǒng)通知的發(fā)送方 id
          • to_id:私信/系統(tǒng)通知的接收方 id
          • conversation_id:標(biāo)識(shí)兩個(gè)用戶之間的對(duì)話。比如用戶 id 112 給 113 發(fā)消息,或者 113 給 112 發(fā)消息,這兩個(gè)會(huì)話的 conservation_id 都是 112_113。這樣,通過這個(gè)字段我們就能查出來 112 和 113 之間的私信往來了。當(dāng)然,這個(gè)字段是冗余的,我們可以通過 from_id 和 to_id 推演出來,但是有了這個(gè)字段方便后面的查詢等操作
          • content:私信/系統(tǒng)通知的內(nèi)容
          • status:私信/系統(tǒng)通知的狀態(tài)
            • 0 - 未讀(默認(rèn))
            • 1 - 已讀
            • 2 - 刪除(暫未使用)
          • create_time:私信/系統(tǒng)通知的發(fā)送時(shí)間
          瀏覽 48
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美成人三级在线视频 | 天天好逼网好逼天天有 | 婷婷无码在线 | 乱老熟女一区二区三区 | 亚洲欧美日韩久久 |