在上一篇文章winform項目——仿QQ即時通訊程序01:原理及項目分析,我們對即時通訊程序進行了項目分析,明確了它的功能,那么本篇文章將根據(jù)這些功能進行數(shù)據(jù)庫設(shè)計。因為篇幅原因,在此之前,我們要先聊一聊為什么選擇數(shù)據(jù)庫以及數(shù)據(jù)的存儲及作用。
如果按照數(shù)據(jù)來分類,軟件可分為保存數(shù)據(jù)和非保存數(shù)據(jù)的軟件。很多軟件從安裝完成打開的那一刻起,就會訪問你的存儲設(shè)備進行文件、文件夾的增加、修改。這些文件都是由軟件的邏輯進行生成的,這叫依賴文件,程序要運行就必須創(chuàng)建這些文件去記錄數(shù)據(jù),像軟件的設(shè)置、用戶的賬號等都需要用文件的形式存在本地。如下圖的data.db,其實它就是一個簡單的文本文件,只不過改了擴展名而已。

這些簡單的數(shù)據(jù)用一些小文件保存就可以,其實,很多小軟件只需要在本地生成文件,以自己的程序邏輯進行數(shù)據(jù)的存儲和讀取就能夠滿足大多數(shù)需求了。如果程序中涉及到很多數(shù)據(jù)的增刪改查,那么就需要用高級一點的數(shù)據(jù)庫方式來存放數(shù)據(jù),比如手機中的電話本、信息,它們的數(shù)據(jù)都是以一張張表的形式存儲在一個數(shù)據(jù)庫文件中的,讀取、查詢某一條數(shù)據(jù)都很方便。
說了這么多,我想你們應(yīng)該知道這個即時通訊軟件為什么需要數(shù)據(jù)庫存儲了吧,就是因為。其實數(shù)據(jù)庫中只是存放軟件核心的數(shù)據(jù),比如用戶信息、好友信息等。其它信息像聊天記錄、記住賬號、等都是以小文件的形式存儲在本地的。

我給這個程序起了個名字:CIM,IM代表即時消息,C代表connection連接,后文都將以CIM表示本項目。
接下來我們就開始分析和設(shè)計數(shù)據(jù)庫。因為設(shè)計功能的時候就是以簡潔為主,所以數(shù)據(jù)庫也非常簡單,只有幾張表。主要就是圍繞著用戶來進行業(yè)務(wù)邏輯的實現(xiàn)。所以我們只需要分析出用戶有什么動作,就可以根據(jù)這些動作設(shè)計出相應(yīng)的數(shù)據(jù)表。
1下面,我們模擬用戶的操作,隨著操作的進行,數(shù)據(jù)表也就能設(shè)計出來了。首先,用戶打開軟件,需要注冊一個賬號,用戶在注冊的時候,需要填寫一些個人信息。比如賬號的密碼,昵稱,個性簽名,聯(lián)系地址,郵箱,個人愛好,等等。這些信息需要存儲在一張表中,因此,第一張表就是存儲用戶信息的用戶表:Users
為了方便,我們就只用了三個主要的字段,純屬演示之用,其它信息像個性簽名、郵箱等無關(guān)緊要的數(shù)據(jù)都不進行存儲了。

字段解釋:
Account:用戶賬號
Password:用戶密碼
Nickname:用戶昵稱
只需要這三個核心字段就可以了。
2緊接著,用戶注冊完成之后,登錄進程序,程序要開始加載用戶的好友。而一個用戶可以有很多好友,因此第二張表就是存儲用戶關(guān)系的好友表:Friends

字段解釋:
MyAccount:我的賬號
FriendAccount:好友賬號
一個我的賬號可以對應(yīng)很多個好友賬號,這樣就可以記錄一個用戶的多個好友了。
3程序還要加載驗證消息,誰請求添加好友等,這也需要一個單獨的請求添加好友的表,因此第三張表就是驗證消息表:Confirm_msg

字段解釋:
MyAccount:我的賬號
FromAccount:發(fā)送驗證消息過來的用戶賬號
MsgContent:驗證消息的內(nèi)容
State:驗證消息的狀態(tài),可以用不同的值表示已同意、已拒絕
4考慮到給未上線的好友發(fā)送消息,服務(wù)端不能直接轉(zhuǎn)發(fā)消息,需要將消息臨時存儲起來,等用戶上線的時候再進行轉(zhuǎn)發(fā),那么就需要將消息臨時存儲起來,那么第四張表就是臨時消息表:Temp_msg

字段解釋:
ToAccount:發(fā)送對象的賬號
FromAccount:發(fā)送者的賬號
MsgContent:發(fā)送的內(nèi)容
Time:發(fā)送的時間
好了,這就是核心的數(shù)據(jù)表,足夠滿足CIM程序的需求了,下一篇文章將進行CIM軟件的界面構(gòu)建工作。
本文系小博客網(wǎng)站原創(chuàng),轉(zhuǎn)載請注明文章鏈接地址
舉報/反饋以上就是【你一定要知道!燃爆了(winform代碼重構(gòu))winform代碼都在,窗體設(shè)計沒有了-winform項目——仿QQ即時通訊程序02:數(shù)據(jù)庫分析設(shè)計】的全部內(nèi)容。


評論