孟密密
[摘 要] 針對(duì)研究機(jī)構(gòu)的需求,闡述了一個(gè)基于ThinkPHP框架的經(jīng)濟(jì)數(shù)據(jù)庫的設(shè)計(jì)與實(shí)現(xiàn)。深入研究ThinkPHP框架,分析經(jīng)濟(jì)數(shù)據(jù)庫的主要功能,設(shè)計(jì)經(jīng)濟(jì)數(shù)據(jù)庫的數(shù)據(jù)庫,最后給出了本系統(tǒng)的實(shí)現(xiàn),通過該系統(tǒng)的運(yùn)行使用,表明該系統(tǒng)對(duì)經(jīng)濟(jì)研究中的數(shù)據(jù)分析大有幫助。
[關(guān)鍵詞] ThinkPHP經(jīng)濟(jì)數(shù)據(jù)庫 設(shè)計(jì) 實(shí)現(xiàn)
中圖分類號(hào):TN302 文獻(xiàn)標(biāo)志碼:A
現(xiàn)有的縣域統(tǒng)計(jì)年鑒對(duì)于縣域經(jīng)濟(jì)研究中的統(tǒng)計(jì)數(shù)據(jù)對(duì)比、查找有諸多不便,如何充分地利用統(tǒng)計(jì)數(shù)據(jù)是經(jīng)濟(jì)研究中亟待解決的問題,在線數(shù)據(jù)庫相對(duì)于其他形式的統(tǒng)計(jì)來說具有更好的便利性、可用性。本文針對(duì)研究機(jī)構(gòu)的實(shí)際需求,開發(fā)一個(gè)在線經(jīng)濟(jì)數(shù)據(jù)庫,本系統(tǒng)使用ThinkPHP框架進(jìn)行開發(fā),能夠提高開發(fā)速度,基于ThinkPHP是一個(gè)MVC框架,有利于系統(tǒng)后期的維護(hù)和擴(kuò)展。
一、縣域經(jīng)濟(jì)數(shù)據(jù)庫
(一)縣域統(tǒng)計(jì)年鑒
統(tǒng)計(jì)年鑒是根據(jù)統(tǒng)計(jì)年報(bào)資料匯編而成,比較系統(tǒng)地反映當(dāng)?shù)氐膰窠?jīng)濟(jì)和社會(huì)發(fā)展情況,統(tǒng)計(jì)年鑒的內(nèi)容一般包括綜合、國民經(jīng)濟(jì)核算、人口、就業(yè)和職工工資、固定資產(chǎn)投資。
(二)研究現(xiàn)狀
目前,國內(nèi)的主要經(jīng)濟(jì)數(shù)據(jù)庫有中國知網(wǎng)數(shù)據(jù)庫、銳思數(shù)據(jù)庫 、萬德數(shù)據(jù)庫、中國統(tǒng)計(jì)局?jǐn)?shù)據(jù)庫等 ,這些數(shù)據(jù)庫共同的缺點(diǎn)就是分類不夠細(xì),不方便統(tǒng)計(jì)和比較,有些行業(yè)數(shù)據(jù)更新較慢,對(duì)于經(jīng)濟(jì)研究者來說,創(chuàng)建符合自己的研究特點(diǎn)的數(shù)據(jù)庫更適用。
(三)本文工作內(nèi)容
針對(duì)縣域統(tǒng)計(jì)數(shù)據(jù)的特點(diǎn),設(shè)計(jì)一個(gè)基于ThinkPHP框架的縣域經(jīng)濟(jì)數(shù)據(jù)庫,實(shí)現(xiàn)經(jīng)濟(jì)數(shù)據(jù)搜索、導(dǎo)入和導(dǎo)出操作,實(shí)現(xiàn)文件的在線管理,并且根據(jù)用戶的不同角色,設(shè)置相關(guān)的權(quán)限,實(shí)現(xiàn)一個(gè)便于單位內(nèi)部使用的經(jīng)濟(jì)數(shù)據(jù)庫。本文的主要任務(wù):
(1)研究ThinkPHP框架及相關(guān)技術(shù);
(2)設(shè)計(jì)相關(guān)的數(shù)據(jù)庫表;
(3)實(shí)現(xiàn)基于ThinkPHP 框架的的縣域經(jīng)濟(jì)數(shù)據(jù)庫。
二、相關(guān)技術(shù)介紹——ThinkPHP框架
ThinkPHP框架是一個(gè)PHP開源框架,能夠簡化WEB應(yīng)用的開發(fā),幫助開發(fā)者快速地進(jìn)行WEB應(yīng)用開發(fā),使用面向?qū)ο蟮拈_發(fā)結(jié)構(gòu)和MVC模式。
(一)ThinkPHP CURD操作
ThinkPHP提供了靈活和方便的數(shù)據(jù)操作方法,不僅實(shí)現(xiàn)了對(duì)數(shù)據(jù)庫的基本操作,還內(nèi)置了很多實(shí)用的數(shù)據(jù)操作方法,提供了ActiveRecords模式的最佳體驗(yàn)。ThinkPHP可以快速地創(chuàng)建數(shù)據(jù)對(duì)象,最典型的應(yīng)用就是自動(dòng)根據(jù)表單數(shù)據(jù)創(chuàng)建數(shù)據(jù)對(duì)象,M方法實(shí)現(xiàn)一個(gè)模型類,寫入操作使用方法,find方法查詢數(shù)據(jù),where方法中寫入查詢數(shù)據(jù)的條件,更新數(shù)據(jù)使用save方法,數(shù)據(jù)刪除使用delete方法。
(二)Thinkphp 框架的結(jié)構(gòu)及優(yōu)點(diǎn)
模型(M):模型的定義由Model類來完成。Model類位于項(xiàng)目目錄下面的LibModel目錄??刂破鳎–):應(yīng)用控制器(核心控制器)和Action控制器都承擔(dān)了控制器的角色,區(qū)別在于Action控制器完成業(yè)務(wù)過程,而應(yīng)用控制器(App類)負(fù)責(zé)調(diào)度控制。Action控制器位于項(xiàng)目目錄下面的LibAction目錄。視圖(V):模板的實(shí)現(xiàn)是和框架無關(guān)的,做到了100%分離,可以獨(dú)立預(yù)覽和制作。模板目錄位于項(xiàng)目目錄下面的Tpl目錄。
三、縣域經(jīng)濟(jì)數(shù)據(jù)庫的設(shè)計(jì)與實(shí)現(xiàn)
縣域經(jīng)濟(jì)數(shù)據(jù)庫解決了如何存儲(chǔ)、管理數(shù)據(jù)的問題,其主要任務(wù)是將Excel文件中的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中,按用戶條件查找數(shù)據(jù),最后將數(shù)據(jù)查詢出來后導(dǎo)出到Excel文件中。用戶通過WEB頁面實(shí)現(xiàn)數(shù)據(jù)的操作管理。
(一)縣域經(jīng)濟(jì)數(shù)據(jù)庫功能模塊劃分
縣域經(jīng)濟(jì)數(shù)據(jù)庫系統(tǒng)分為五個(gè)模塊:用戶管理模塊、系統(tǒng)管理模塊、日志管理模塊、云端文件模塊、數(shù)據(jù)管理模塊。系統(tǒng)管理模塊:主要包括兩個(gè)模塊,網(wǎng)站配置和模塊管理。網(wǎng)站配置主要實(shí)現(xiàn)網(wǎng)站標(biāo)題的設(shè)置,用戶空間分配,上傳文件大小、類型設(shè)置。模塊管理主要實(shí)現(xiàn)對(duì)本系統(tǒng)的模塊進(jìn)行管理,能夠?qū)崿F(xiàn)對(duì)模塊的增刪改查操作。用戶管理模塊:該模塊主要包括用戶管理、角色管理、權(quán)限管理。用戶管理主要實(shí)現(xiàn)用戶的增刪改查。角色管理主要實(shí)現(xiàn)角色的增刪改查,角色一般包括超級(jí)管理員、普通管理員、普通用戶,可以給不同的角色分配不同的權(quán)限。權(quán)限管理主要是對(duì)模塊的相關(guān)功能操作權(quán)限進(jìn)行管理。文件管理模塊:該模塊主要實(shí)現(xiàn)文件、圖片的查看、上傳、下載、刪除,實(shí)現(xiàn)對(duì)文件的管理功能。數(shù)據(jù)管理模塊:該模塊主要的功能是將Excel文件中的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中,實(shí)現(xiàn)根據(jù)查找條件查找出數(shù)據(jù),將查找的數(shù)據(jù)導(dǎo)出為Excel文件。
(二)數(shù)據(jù)庫的設(shè)計(jì)
該系統(tǒng)的數(shù)據(jù)庫表較多,主要介紹用戶權(quán)限表,用戶表,數(shù)據(jù)項(xiàng)管理表。
用戶權(quán)限表有六個(gè)字段,包括ID、Sid、Cname、Description、Dtime,例如,用戶管理模塊是一個(gè)權(quán)限,該模塊下包括用戶列表、添加用戶、修改用戶、刪除用戶四個(gè)功能權(quán)限。
數(shù)據(jù)項(xiàng)管理表如圖1所示:
該數(shù)據(jù)項(xiàng)管理表主要存儲(chǔ)用戶導(dǎo)入的Excel數(shù)據(jù)表的數(shù)據(jù)項(xiàng),在查找頁面能根據(jù)數(shù)據(jù)項(xiàng)的值進(jìn)行查找。當(dāng)用戶導(dǎo)入Excel表,有新的數(shù)據(jù)項(xiàng)時(shí),將數(shù)據(jù)項(xiàng)寫入這個(gè)表中。
(三)關(guān)鍵技術(shù)處理/關(guān)鍵功能實(shí)現(xiàn)
1.導(dǎo)入數(shù)據(jù)
在本系統(tǒng)中,導(dǎo)入數(shù)據(jù)是一個(gè)基本的且比較重要的功能。本系統(tǒng)使用PHPExcel實(shí)現(xiàn)導(dǎo)入Excel表,首先導(dǎo)入phpExcel核類,require_onceAPP_PATH.PHPExcel/ PHPExcel.php; $ PHPExcel->getSheet(0);//讀取excel文件中的第一個(gè)工作表; for($ i=1;$ i<=$ highestRow;$ i++);//讀取excel表的第二行,"create table if not exists tp_".$ biaoming."(id integer not null auto_increment ,sid integer ,uid integer, ";//創(chuàng)建數(shù)據(jù)庫表,最后將讀取的數(shù)據(jù)寫入到數(shù)據(jù)庫中。
2.導(dǎo)出數(shù)據(jù)
將查詢的數(shù)據(jù)導(dǎo)出到Excel文件中,Excel文件包括表頭和數(shù)據(jù)。表頭是從數(shù)據(jù)項(xiàng)管理表中讀取的,數(shù)據(jù)是從數(shù)據(jù)表中讀取的。exportExcel($ expTitle,$ expCellName,$ expTabl eData);使用該方法將表頭和數(shù)據(jù)寫入到Excel文件中。
3.查詢數(shù)據(jù)
查詢數(shù)據(jù)使用ajax方法將查詢條件傳遞到后臺(tái),查詢條件包括地區(qū)、指標(biāo)條件、要導(dǎo)出的指標(biāo)、年限。$ sql="select * from ".$ str4." where province in (".$ str1.") or city in (".$ str2.") or county in (".$ str3.") and".$ str5. $ oActi onOne.$ oValueOne.$ andor.$ str6.$ oActionTwo.$ oValueTwo;//根據(jù)查詢條件查詢數(shù)據(jù)。
4.文件管理
實(shí)現(xiàn)常規(guī)的文件管理操作,包括文件增刪改查,public function fileclass_add();添加分類目錄,,public function uploadfile();//實(shí)現(xiàn)上傳文件,public function down() ;//實(shí)現(xiàn)下載文件。
(四)用戶界面展示和測(cè)試分析
查詢界面如圖2所示,導(dǎo)出查詢結(jié)果到Excel文件中,查詢結(jié)構(gòu)正確
上傳文件的界面如圖3所示,可以實(shí)現(xiàn)文件的上傳功能。
四、結(jié)語
本文闡述了thinkphp技術(shù),提出并實(shí)現(xiàn)了一個(gè)基于thinkphp的經(jīng)濟(jì)數(shù)據(jù)庫。該系統(tǒng)可以實(shí)現(xiàn)經(jīng)濟(jì)數(shù)據(jù)的存儲(chǔ)和查詢,實(shí)現(xiàn)定制化的數(shù)據(jù)庫,本系統(tǒng)同時(shí)帶有文件管理功能,經(jīng)濟(jì)研究者存儲(chǔ)共享文件非常方便。
(作者單位:中共青島市即墨區(qū)委黨校)