濮阳杆衣贸易有限公司

主頁 > 知識庫 > 分享網(wǎng)站群發(fā)站內(nèi)信數(shù)據(jù)庫表設(shè)計

分享網(wǎng)站群發(fā)站內(nèi)信數(shù)據(jù)庫表設(shè)計

熱門標(biāo)簽:貴州房產(chǎn)智能外呼系統(tǒng)供應(yīng)商 外呼運營商線路收費 臨沂智能電銷機器人加盟哪家好 一個導(dǎo)航軟件能用幾個地圖標(biāo)注點 電銷外呼有錄音系統(tǒng)有哪些 百度地圖標(biāo)注改顏色 鎮(zhèn)江網(wǎng)路外呼系統(tǒng)供應(yīng)商 小e電話機器人 申請400電話在哪辦理流程
“站內(nèi)信”不同于電子郵件,電子郵件通過專門的郵件服務(wù)器發(fā)送、保存。而“站內(nèi)信”是系統(tǒng)內(nèi)的消息,說白了,“站內(nèi)信”的實現(xiàn),就是通過數(shù)據(jù)庫插入記錄來實現(xiàn)的。

  “站內(nèi)信”有兩個基本功能。一:點到點的消息傳送。用戶給用戶發(fā)送站內(nèi)信;管理員給用戶發(fā)送站內(nèi)信。二:點到面的消息傳送。管理員給用戶(指定滿足某一條件的用戶群)群發(fā)消息。點到點的消息傳送很容易實現(xiàn),本文不再詳述。下面將根據(jù)不同的情況,來說說“站內(nèi)信”的群發(fā)是如何實現(xiàn)的。

  第一種情況,站內(nèi)的用戶是少量級別的。(幾十到上百)

  這種情況,由于用戶的數(shù)量非常少,因此,沒有必要過多的考慮數(shù)據(jù)庫的優(yōu)化,采用簡單的表格,對系統(tǒng)的設(shè)計也來的簡單,后期也比較容易維護,是典型的用空間換時間的做法。

  數(shù)據(jù)庫的設(shè)計如下:表名:Message

  ID:編號;SendID:發(fā)送者編號;RecID:接受者編號(如為0,則接受者為所有人);Message:站內(nèi)信內(nèi)容;Statue:站內(nèi)信的查看狀態(tài);PDate:站內(nèi)信發(fā)送時間;

  如果,某一個管理員要給所有人發(fā)站內(nèi)信,則先遍歷用戶表,再按照用戶表中的所有用戶依次將站內(nèi)信插入到Message表中。這樣,如果有56個用戶,則群發(fā)一條站內(nèi)信要執(zhí)行56個插入操作。這個理解上比較簡單,比較耗損空間。

  某一個用戶登陸后,查看站內(nèi)信的語句則為:

  Select * FROM Message Where RecID=‘ID' OR RecID=0

  第二種情況,站內(nèi)的用戶中量級別的(上千到上萬)。

  如果還是按照第一種情況的思路。那發(fā)一條站內(nèi)信的后果基本上就是后臺崩潰了。因為,發(fā)一條站內(nèi)信,得重復(fù)上千個插入記錄,這還不是最主要的,關(guān)鍵是上千乃至上萬條記錄,Message字段的內(nèi)容是一樣的,而Message有大量的占用存儲空間。比方說,Message字段有100個漢字,占用200個字節(jié),那么5萬條,就占用200×50000=10000000個字節(jié)=10M。簡單的一份站內(nèi)信,就占用10M,這還讓不讓人活了。

  因此,將原先的表格拆分為兩個表,將Message的主體放在一個表內(nèi),節(jié)省空間的占用

  數(shù)據(jù)庫的設(shè)計如下:

  表名:Message

  ID:編號;SendID:發(fā)送者編號;RecID:接受者編號(如為0,則接受者為所有人);MessageID:站內(nèi)信編號;Statue:站內(nèi)信的查看狀態(tài);

  表名:MessageText 

  ID:編號;Message:站內(nèi)信的內(nèi)容;PDate:站內(nèi)信發(fā)送時間;

  在管理員發(fā)一封站內(nèi)信的時候,執(zhí)行兩步操作。先在MessageText表中,插入站內(nèi)信的內(nèi)容。然后在Message表中給所有的用戶插入一條記錄,標(biāo)識有一封站內(nèi)信。

  這樣的設(shè)計,將重復(fù)的站內(nèi)信的主體信息(站內(nèi)信的內(nèi)容,發(fā)送時間)放在一個表內(nèi),大量的節(jié)省存儲空間。不過,在查詢的時候,要比第一種情況來的復(fù)雜。

  第三種情況,站內(nèi)的用戶是大量級的(上百萬),并且活躍的用戶只占其中的一部分。

  大家都有這樣的經(jīng)歷,某日看一個網(wǎng)站比較好,一時心情澎湃,就注冊了一個用戶。過了一段時間,由于種種原因,就忘記了注冊時的用戶名和密碼,也就不再登陸了。那么這個用戶就稱為不活躍的。從實際來看,不活躍的用戶占著不小的比例。

  我們以注冊用戶2百萬,其中活躍用戶只占其中的10%。

  就算是按照第二種的情況,發(fā)一封“站內(nèi)信”,那得執(zhí)行2百萬個插入操作。但是其中的有效操作只有10%,因為另外的90%的用戶可能永遠(yuǎn)都不會再登陸了。

  在這種情況下,我們還得把思路換換。

  數(shù)據(jù)庫的設(shè)計和第二種情況一樣:

  表名:Message

  ID:編號;SendID:發(fā)送者編號;RecID:接受者編號(如為0,則接受者為所有人);MessageID:站內(nèi)信編號;Statue:站內(nèi)信的查看狀態(tài);

  表名:MessageText 

  ID:編號;Message:站內(nèi)信的內(nèi)容;PDate:站內(nèi)信發(fā)送時間;

  管理員發(fā)站內(nèi)信的時候,只在MessageText插入站內(nèi)信的主體內(nèi)容。Message里不插入記錄。

  那么,用戶在登錄以后,首先查詢MessageText中的那些沒有在Message中有記錄的記錄,表示是未讀的站內(nèi)信。在查閱站內(nèi)信的內(nèi)容時,再將相關(guān)的記錄插入到Message中。

  這個方法和第二種的比較起來。如果,活躍用戶是100%。兩者效率是一樣的。而活躍用戶的比例越低,越能體現(xiàn)第三種的優(yōu)越來。只插入有效的記錄,那些不活躍的,就不再占用空間了。

  以上,是我對群發(fā)“站內(nèi)信”的實現(xiàn)的想法。

作者:萬倉一黍
出處:http://grenet.cnblogs.com/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。

標(biāo)簽:三明 嘉興 保定 日照 延邊 晉城 澳門 合肥

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《分享網(wǎng)站群發(fā)站內(nèi)信數(shù)據(jù)庫表設(shè)計》,本文關(guān)鍵詞  分享,網(wǎng)站,群發(fā),站內(nèi),信,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《分享網(wǎng)站群發(fā)站內(nèi)信數(shù)據(jù)庫表設(shè)計》相關(guān)的同類信息!
  • 本頁收集關(guān)于分享網(wǎng)站群發(fā)站內(nèi)信數(shù)據(jù)庫表設(shè)計的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    汤原县| 南开区| 昌都县| 逊克县| 包头市| 怀仁县| 通辽市| 襄汾县| 宁城县| 印江| 绵竹市| 山西省| SHOW| 丹棱县| 五莲县| 滦平县| 惠州市| 潞西市| 高陵县| 胶州市| 大埔区| 延吉市| 陆川县| 大厂| 蒲江县| 柏乡县| 阿尔山市| 长治市| 湖南省| 喀喇沁旗| 孙吴县| 循化| 分宜县| 诸暨市| 平阳县| 黄冈市| 佛学| 平利县| 同仁县| 芦山县| 县级市|