韓天亮

摘要:本文利用SQLite嵌入式數據庫設計了輕量級的人事信息管理系統數據存儲模型,由于SQLite本身其具有嵌入式、輕量級、便于操作等特性,使得人事信息的管理變得具有很大的彈性,方便開發人員和管理人員進行二次開發,提高了系統的市場普及率。
關鍵詞:人事信息管理;數據庫設計;SQLite
1 背景分析
現如今,人事信息軟件普遍規模較大,功能較強。但由于價格昂貴、專業要求高、軟件部署復雜、后期維護成本高等原因,客戶群體主要是大中型企業及團體[1]。但是通過市場分析可知,雖然多數小型企業及團體沒有使用人事信息管理軟件,但其市場需求是客觀存在的。如果開發一款體量小、功能實用、價格低廉的人事管理軟件,便可以彌補此方面市場的空缺。
2 數據庫需求分析
在大型人事信息管理系統中,人事信息的存儲與管理是至關重要的。由于大型系統數據量大、操作頻繁,性能要求極高,因此普遍采用Sqlserver、Oracle等大型數據庫系統[2]。眾所周知,這些系統的使用是需要付費的,這也增加了用戶的使用成本。在數據表設計過程中,為了提高運算性能,通常數據表都是固定的。雖然這樣設計提高了運算性能,但也降低了數據存儲與管理的靈活性。當用戶對數據項有特殊要求時,用戶幾乎沒有修改的余地。本文使用SQLite作為系統數據庫。
3 數據庫結構設計
出于降低使用成本、降低部署難度等方面的因素,本文使用嵌入式的輕量級數據庫SQLite作為系統數據庫。SQLite[3],是一款輕型的數據庫,是遵守ACID的關系型數據庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。它的設計目標是嵌入式的,而且目前已經在很多嵌入式產品中使用了它,它占用資源非常的低,在嵌入式設備中,可能只需要幾百K的內存就夠了。
本文設計了人事信息主表,用來定義用戶的登錄信息。其定義主要如下所示:
create table users(
Id int primary key identity(1,1),--用戶Id
Name char not null,--登錄名
Pwd nvarchar not null,--登錄密碼
RoleId nvarchar,--角色Id
LoginTime datetime,--最后登錄時間
LoginState bit default(false),--登錄狀態
Times int--登錄次數);
可見,本信息表主要是存儲了用戶登錄的相關信息,用戶的其它信息都是以Users表為基準的。本系統將人事信息系統數據庫表劃分為兩大類,包括基本數據類和擴展數據類。其中基礎數據類包括用戶表(Users),系統信息表(sysInfo),角色表(authorityInfo)等;擴展數據類主要有:自然信息表(NatureInfo)、教育信息表(EduInfo)、聯系信息表(ContactInfo)、職稱信息表(JobInfo)等。且其它所有人事信息表的身份證號或護照號均與users表的身份證號或護照號聯動。本系統表與表之間關系如圖(1)所示。
圖(1)系統表間關系
數據庫人事信息主要會產生四種操作,主要有“增、刪、改、查”。其處理方式如下:
(1)增加操作:當主表有信息條目插入時,主表會觸發相關觸發器,觸發器會自動向其它信息表插入信息,其插入的數據主鍵ID與主表ID相同;同時也會插入用戶的身份證號碼,如果是外籍人員則插入護照號碼。其余數據項為空或其它默認值。
(2)刪除操作:對于人事信息的刪除,本文設計只將主表信息進行刪除,而不會刪除擴展數據區信息表,除非人工刪除。這樣做的目的在于人事信息留痕,防止誤刪。
(3)修改操作:本文設定主鍵(即ID)和身份證號碼是不可修改的。
(4)查詢操作:本文通過人事信息表的左連接操作,將數據表連接成一個“大”表,這樣做雖然降低了運算效率,但是卻直接降低了邏輯難度,提高了開發效率;現在的硬件運算能力較強,并且中小企業的人事信息數據較少,因此,這樣的設計是完全可以接受的。
當擴展區數據庫表不能滿足用戶信息存儲的需求時,用戶可在遵從以上規則的情況下,在擴展數據區域內自定義數據表,用于增加數據項目。這樣處理理論上可以無限增加用戶數據的維度,最大限度地滿足用戶的需求。
4 實驗與總結
本文利用SQLite其本身具有嵌入式、輕量級、便于操作等特性,使得人事信息的管理變得具有很大彈性,方便開發人員和管理人員進行二次開發利用,提高了系統的市場普及率。理論上SQLite并發能力并不強,但通過合理設置后則完全可以滿足需求。通過實驗可知,當用戶存儲量在1000人時,并發量在100人以內時,數據讀取及更新延遲較小,完全可以接受。這樣的運算能力足以滿足中小企業和團體的需求。未來的日子,我們將繼續努力,設計出更好更優的信息系統。
參考文獻:
[1]陳怡,余開朝.基于Web的人力資源績效管理系統研究[J].電訊技術:工業工程版,2005.
[2]余盤祥.數據庫系統基礎[M].北京:清華大學出版社,2015.
[3]百度百科 SQLite https://baike.baidu.com/item/SQLite/ 375020? fr=aladdin