王家隆
摘 要 公共賬號交互平臺的設計主要是基于MVC框架設計模式,也就是模型-視圖-控制器的模式,采用的是SSH框架(Strut-Spring-Hibernate),在系統開發過程中,用Strut來負責針對表現層傳來的request根據servlet和service做出對應的response;Hibernate用于實現對數據庫的封裝和操作。本論文首先對微信公共平臺的現狀和發展做出了介紹,接下來會重點介紹本論文重點研究的內容,也就是整個系統開發過程的數據庫的設計和實現。最后,會得出對本次系統設計和實現的總結和展望。
【關鍵詞】MVC Hibernate 微信 數據庫
隨著信息化、網絡化時代的到來,各種社交軟件玲瑯滿目,微信作為一個通訊社交軟件被廣大用戶使用,越來越多企業和個人運用微信開發出自己的個人項目。對公共賬號交互平臺的開發因為廣泛的用戶而具有極高的市場價值。所謂成功是站在巨人的肩膀上,微信公共賬號就是現在的一個巨人,開發者要學會利用現有的資源開發出更多更完善的功能。
在眾多項目的設計和開發過程中,數據庫的設計與實現扮演者重要的角色,一個良好的數據庫設計能夠充分利用有效的資源去更好的實現項目,能夠使項目在開發過程中順利進行,也使得項目在開發完成后維護和擴展方面具有更好的優勢,設計不好數據庫可能讓項目在開發中增加不必要的障礙,也使得系統維護和擴展收到阻擾。一般課題針對公共賬號平臺系統的開發過程進行分析和研究,主要包括從了解目前微信公共平臺的開發現狀到整個系統實現過程中數據庫設計的全部內容。其中包括數據庫設計的六個階段,第一是針對系統在數據、功能和性能等三方面對需求進行分析;第二是數據庫的概念結構設計主要是E-R模型與E-R圖;第三是邏輯結構設計,也就是將E-R圖轉換成關系表的過程;第四是數據庫的物理設計,包括數據庫的存儲結構與存取路徑,數據的劃分與分布等;第五是對數據庫的實現,主要有編程、測試和試運行三個方面;最后是對數據庫運行和維護,包括了監控與分析、備份和恢復、重組織與重構造、安全性控制與完整性控制。本文主要對數據庫的物理實現和數據庫的實現做詳細研究。
公共平臺交互系統是以ROM為主要設計思路、Hibernate為設計框架設計實現的。在項目中引入了hibernate.cfg.xml配置文件實現了對數據庫的連接,數據庫使用的是MySql,在開發過程中,編寫了.java類和.hbm.xml的映射文件來實現程序與數據庫的操作和交互。
1 數據庫實體設計
公共賬號交互平臺采用的數據庫是MySql,在數據庫中建立了一個名為michat的數據庫,michat是我們項目的Might Chat的簡稱,中文名稱為威信。Michat數據庫包含了依照需求分析在本系統中有兩種用戶,一種是管理員用戶,一種是關注了公共賬號交互平臺的粉絲,其中管理員用戶只定義了一個用戶,因為管理員不存在注冊等功能,所以在數據庫中并沒有設計管理員的表格。數據庫中定義粉絲、活動、消息,接下來以粉絲數據和管理員為例具體介紹實體關系模型。
粉絲數據實體:粉絲實體包含了很多內容,包括粉絲ID、粉絲的昵稱、粉絲的頭像、粉絲所在的分組、粉絲是否關注了公共賬號、粉絲的性別、所在的國家、所在省份、所在城市、粉絲的游戲、活動情況、健康狀態、關注公共賬號的時間和粉絲目前的狀態。因為公共賬號提供了眾多的功能,所以粉絲的實體包含的內容很多。
管理員數據實體:包含了管理員的ID、用戶名、管理員的頭像和密碼。主要用于儲存管理員的相關數據。
數據庫實體間的關系:在公共賬號交互平臺中,粉絲能夠查看多個消息包括三個類型有微新聞、服裝和美食,三種形式消息也能同時被多個粉絲查看。粉絲能夠通過輸入自己的用戶名等信息生成帶有自己填入信息的二維碼,通過掃描二維碼可以獲得粉絲輸入的信息,每個粉絲能生成多個二維碼,但是一個二維碼上面只能夠攜帶一個粉絲的信息。粉絲能夠參與微游戲,微游戲為通關游戲,只有通過上一道關卡才能進入下一個關卡,游戲實體指的是游戲過程中的游戲關卡,所以每個粉絲能夠玩多個游戲,并且游戲能同時供多個粉絲娛樂。粉絲能參與三種活動,粉絲可以參與多個線下活動,但是不能同時參與兩個或兩個以上的線下活動,粉絲能參與多個投票活動,但是對于已經投票的活動不能再次投票,粉絲能參與討論活動,討論活動不受限制,只要發布的評論文明。三種活動都是允許多個粉絲同時參與的。
2 數據庫表設計
表的詳細設計:數據庫中表的設計是整個數據庫中最重要的部分,良好的表設計能夠充分利用數據庫的資源,出現較少數據之間的冗余,并且能夠做到儲存數據的完整性和統一性,沒有良好設計的數據庫可能會出現大量運用資源卻得不到好的利用率。在數據庫的設計過程中也要注意數據的安全性保護,不能為了減少數據冗余而出現數據的遺漏。
公共賬號交互平臺的角色有粉絲和管理員兩種,對于粉絲這個角色擁有太多的屬性和操作,如果將所有表項放在一塊不符合數據庫的設計原則,所以項目中設計了三個跟粉絲有關的表,一個用于存放跟粉絲有關的屬性,例如粉絲的ID、昵稱、頭像等;一個存放微活動和健康等操作中需要用到粉絲的相關屬性,例如粉絲的狀態、粉絲的健康養成等;最后一個是為微游戲提供的專用表,主要是存放粉絲的相關屬性和粉絲的微游戲狀態。以粉絲表設計為例重點描述。
3 總結
本文主要介紹了公共賬號交互平臺開發過程中的數據庫的設計原理、要求和具體的設計。在整個設計過程中要注意實體間的關系,實體與表之間的映射,最為重要的是表的設計,要注意表與表之間的邏輯關系,要留心外鍵的設計和使用,還有再最開始設計時一定要注意編碼方式的統一。本章還簡單介紹了數據庫實現的過程,介紹了在公共賬號交互平臺系統中數據庫實現遇到的一些困難和注意事項。整體而言,數據庫的設計是一個細心、縝密的工作,需要開發者能夠全面的考慮問題。
作者單位
上海交通大學 上海市 200433