摘????要
在如今社會上,關于信息上面的處理,沒有任何一個企業或者個人會忽視,如何讓信息急速傳遞,并且歸檔儲存查詢,采用之前的紙張記錄模式已經不符合當前使用要求了。所以,對流浪動物信息管理的提升,也為了對流浪動物信息進行更好的維護,流浪動物管理系統的出現就變得水到渠成不可缺少。通過對流浪動物管理系統的開發,不僅僅可以學以致用,讓學到的知識變成成果出現,也強化了知識記憶,擴大了知識儲備,是提升自我的一種很好的方法。通過具體的開發,對整個軟件開發的過程熟練掌握,不論是前期的設計,還是后續的編碼測試,都有了很深刻的認知。
流浪動物管理系統通過MySQL數據庫與Spring Boot框架進行開發,流浪動物管理系統能夠實現寵物信息管理,寵物留言管理,寵物收藏管理,寵物寄養管理,寵物領養管理,寵物領養審核管理等功能。
通過流浪動物管理系統對相關信息的處理,讓信息處理變的更加的系統,更加的規范,這是一個必然的結果。已經處理好的信息,不管是用來查找,還是分析,在效率上都會成倍的提高,讓計算機變得更加符合生產需要,變成人們不可缺少的一種信息處理工具,實現了綠色辦公,節省社會資源,為環境保護也做了力所能及的貢獻。
關鍵詞:流浪動物管理系統;寵物寄養;寵物領養
第4章?系統設計
到目前為止,市面上已經存在了各種各樣的軟件系統,從系統的分類著手,主要應用范圍傾向于辦公系統,娛樂系統,社交系統,然后下面有很多比較細的分支系統。很多系統已經經過了市場的考驗,針對不同的業務場景已經開始出現了業務模塊化,程序員減代碼化的各種設計方式。到目前為止,當要設計一個系統的時候,首先根據業務模型基本上都可以在網上找到類似的模板,然后根據具體業務具體分析,進而實現具體功能,大眾的就是最好的,畢竟符合市場主流的就代表著肯定符合常規操作流程。
4.1 系統設計目標
系統設計的時候,就要制定需要達成的目標。在功能上,要嚴格符合設計需求,不僅僅要減少操作步驟,也要符合預期。因此,在規范化的今天設計出符合項目要求的系統,必須要達到下面設定的目標。
第一個目標就是友好性:友好性主要體現在用戶使用過程中,不會對系統的操作產生一種不滿,減少操作者的憤怒,這是相當重要的一個體現。前幾年好多軟件在這個友好性方面失去了市場,就是因為在友好性這方面沒有做好。國內互聯網發展初期,軟件設計的目的就是能用就行,至于友好性的對比,那是不存在的,因為硬件效率比較低,計算機屬于新興行業,所以大哥不說二哥,都是不友好的。隨著計算機硬件的提升,很多開發者開始注意到要犧牲一定的計算器性能來提升友好性,因為計算機發展到現在,第一印象很重要,一個軟件設計的不好看,會讓大部分人對其產生質疑,所以要在友好性上面下很大功夫進行雕琢。
第二個目標就是安全性:安全性其實貫穿著整個軟件行業的發展史,計算機就是為解決人類重復性計算以及數據存儲的目的而誕生的,很多行業都需要計算機來進行計算,減少出錯幾率,并且把數據保留,可以實時查詢,所以數據的安全性也很重要。
只要保證數據安全性的前提,開發出符合功能需求的友好界面操作,那么就達到了系統設計的目的。
4.2功能結構設計
本系統主要是基于數據的增加,修改,刪除等操作,使用者能夠通過提前設定的登錄功能進入指定的操作區,這里對使用者設計的功能進行結構展示。
管理員功能結構圖的繪制結果見圖4-1。管理員登錄進入本系統操作的功能包括增刪改查寵物信息,寵物領養信息,審核寵物寄養信息以及用戶領養寵物的信息,管理公告,用戶等信息。
圖4-1 管理員功能結構圖
自愿者功能結構圖的繪制結果見圖4-2。自愿者登錄進入本系統操作的功能包括查看寵物信息,寵物領養以及寵物寄養信息,管理論壇,查看公告等。
圖4-2 自愿者功能結構圖
用戶功能結構圖的繪制結果見圖4-3。用戶登錄進入本系統操作的功能包括領養可認領的寵物,發布寵物留言信息,通過論壇模塊發布交流信息,發布寵物寄養信息,查看寵物寄養的審核結果信息,以及申請領養寵物的審核結果信息。
圖4-3 用戶功能結構圖
4.3數據庫設計
如果說設計系統的功能很重要,那么設計該系統的數據庫將更重要,畢竟系統服務于用戶,數據庫服務于系統,用戶訪問系統,操作系統的所有數據都要依賴于數據庫,而系統的數據幾乎都是保存在數據庫中的,所以,一個高質量的程序,必然擁有一個安全,快速響應,穩定可靠的數據庫。本系統的MySQL數據庫可以通過SQL語言來實現對系統數據的管理,包括在指定表中插入數據,在規定的表中更改數據,以及刪除指定表中的部分數據等操作。一般來說,像MySQL這樣的關系型數據庫,對于結構化查詢語言SQL都能很好的進行支持。在編程中,通過合理運用SQL語言便能操作數據庫的各種數據,真是非常方便快捷!
4.3.1 數據庫概念設計
本節內容主要是使用圖形的方式來描述數據庫中的實體,每個實體的相應屬性,還有實體之間的相互聯系,常用的Visio工具即可滿足繪制E-R圖的需求。E-R圖是由矩形,橢圓,菱形等圖形元素組成,矩形框中主要寫實體的名稱,橢圓框中主要是登記該實體的屬性,而菱形框中主要是登記實體之間的聯系名稱,最后使用實心線段把這些圖形元素進行連接,即可完成E-R圖的繪制。當初步得到一個E-R圖時,需要進行檢查,使用分析的方式去修改,重構E-R圖,以達到消除數據冗余,或者是消除實體間聯系冗余的目的。從而保持數據庫的完整性,以及降低數據庫維護上面的難度。
(1)使用Visio這樣的常用的實體屬性圖繪制工具來繪制用戶實體屬性圖,繪制結果見圖4-3。
圖4-3?用戶實體屬性圖
(2)使用Visio這樣的常用的實體屬性圖繪制工具來繪制寵物寄養實體屬性圖,繪制結果見圖4-4。
圖4-4?寵物寄養實體屬性圖
(3)使用Visio這樣的常用的實體屬性圖繪制工具來繪制寵物領養實體屬性圖,繪制結果見圖4-5。
圖4-5 寵物領養實體屬性圖
(4)使用Visio這樣的常用的實體屬性圖繪制工具來繪制管理員實體屬性圖,繪制結果見圖4-6。
圖4-6 管理員實體屬性圖
(5)繪制的上述實體間存在的聯系見圖4-7。
圖4-7 實體間關系E-R圖
4.3.2 數據庫物理設計
本系統數據在數據庫中都是通過各種二維表進行記錄保存的,在數據庫中設計這樣的二維表也是比較重要的內容,因為它影響著數據的存儲效率。在設計二維表也就是關系模型之前,一些有關二維表方面的常用概念需要進行充分了解。
關系:一張具體的數據表即表示關系,關系的名稱與數據表的名稱保持一致;
元組:數據表中,每行顯示的數據即代表元組;
屬性:數據表中,每列表示的數據即代表屬性;
關鍵字:數據表中,為了與其他數據表進行區分,則需要在每張表中進行主鍵的設置;
通過上節內容可以知曉數據庫中的各個實體,并通過一定方式把這些實體表示的內容進行數據表的轉換,通常來說,每個實體都會對應一張具體的數據表,在本系統指定的數據庫中創建命名好的數據庫,才可以對數據表進行創建與設計。流浪動物管理系統數據表設計結果展示如下:
表4-1 寵物信息表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
chongwu_name | 寵物名稱 | varchar(200) | 是 |
chongwu_photo | 寵物照片 | varchar(200) | 是 |
chongwu_types | 寵物類型 | int(11) | 是 |
chongwu_content | 寵物介紹 | text | 是 |
create_time | 創建時間 | timestamp | 是 |
表4-2 寵物寄養表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
yonghu_id | 用戶 | int(11) | 是 |
chongwu_name | 寵物名稱 | varchar(200) | 是 |
chongwu_photo | 寵物照片 | varchar(200) | 是 |
chongwu_types | 寵物類型 | int(11) | 是 |
jiyang_riqi_time | 寄養日期 | date | 是 |
jiyang_tianshu | 寄養天數 | int(11) | 是 |
jiyangdizhi | 寄養地址 | varchar(200) | 是 |
lianxiren_name | 聯系人姓名 | varchar(200) | 是 |
lianxiren_phone | 聯系人手機號 | varchar(200) | 是 |
chongwujiyang_content | 寄養詳情 | text | 是 |
chongwujiyang_yesno_types | 審核狀態 | int(11) | 是 |
chongwujiyang_yesno_text | 審核意見 | text | 是 |
insert_time | 添加時間 | timestamp | 是 |
create_time | 創建時間 | timestamp | 是 |
表4-3 寵物領養表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
chongwulingyang_name | 標題 | varchar(200) | 是 |
chongwu_types | 寵物類型 | int(11) | 是 |
chongwulingyang_photo | 寵物圖片 | varchar(200) | 是 |
jieshu_types | 是否被認領 | int(11) | 是 |
chongwulingyang_content | 寵物詳情 | text | 是 |
create_time | 創建時間 | timestamp | 是 |
表4-4 寵物領養審核表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
chongwulingyang_id | 寵物領養 | int(11) | 是 |
yonghu_id | 領養用戶 | int(11) | 是 |
chongwurenlingshenhe_text | 認領憑據 | text | 是 |
chongwulingyangshenhe_yesno_types | 申請狀態 | int(11) | 是 |
chongwulingyangshenhe_yesno_text | 申請結果 | text | 是 |
create_time | 創建時間 | timestamp | 是 |
表4-5 寵物收藏表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
chongwu_id | 寵物 | int(11) | 是 |
yonghu_id | 用戶 | int(11) | 是 |
chongwu_collection_types | 類型 | int(11) | 是 |
insert_time | 收藏時間 | timestamp | 是 |
create_time | 創建時間 | timestamp | 是 |
表4-6 寵物留言表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
chongwu_id | 寵物 | int(11) | 是 |
yonghu_id | 用戶 | int(11) | 是 |
chongwu_liuyan_text | 留言內容 | text | 是 |
insert_time | 留言時間 | timestamp | 是 |
reply_text | 回復內容 | text | 是 |
update_time | 回復時間 | timestamp | 是 |
create_time | 創建時間 | timestamp | 是 |
表4-7 論壇表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
forum_name | 帖子標題 | varchar(200) | 是 |
yonghu_id | 用戶 | int(11) | 是 |
ziyuanzhe_id | 自愿者 | int(11) | 是 |
users_id | 管理員 | int(11) | 是 |
forum_content | 發布內容 | text | 是 |
super_ids | 父id | int(11) | 是 |
forum_state_types | 帖子狀態 | int(11) | 是 |
insert_time | 發帖時間 | timestamp | 是 |
update_time | 修改時間 | timestamp | 是 |
create_time | 創建時間 | timestamp | 是 |
表4-8 公告信息表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
news_name | 公告標題 | varchar(200) | 是 |
news_types | 公告類型 | int(11) | 是 |
news_photo | 公告圖片 | varchar(200) | 是 |
insert_time | 添加時間 | timestamp | 是 |
news_content | 公告詳情 | text | 是 |
create_time | 創建時間 | timestamp | 是 |
表4-9 管理員表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | bigint(20) | 否 |
username | 用戶名 | varchar(100) | 否 |
password | 密碼 | varchar(100) | 否 |
role | 角色 | varchar(100) | 是 |
addtime | 新增時間 | timestamp | 否 |
表4-10 用戶表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
username | 賬戶 | varchar(200) | 是 |
password | 密碼 | varchar(200) | 是 |
yonghu_name | 用戶姓名 | varchar(200) | 是 |
yonghu_photo | 頭像 | varchar(200) | 是 |
yonghu_phone | 手機號 | varchar(200) | 是 |
yonghu_email | 電子郵箱 | varchar(200) | 是 |
sex_types | 性別 | int(11) | 是 |
yonghu_delete | 假刪 | int(11) | 是 |
create_time | 創建時間 | timestamp | 是 |
表4-11 自愿者表
字段 | 注釋 | 類型 | 空 |
id?(主鍵) | 主鍵 | int(11) | 否 |
username | 賬戶 | varchar(200) | 是 |
password | 密碼 | varchar(200) | 是 |
ziyuanzhe_name | 自愿者姓名 | varchar(200) | 是 |
ziyuanzhe_photo | 頭像 | varchar(200) | 是 |
ziyuanzhe_phone | 手機號 | varchar(200) | 是 |
ziyuanzhe_email | 電子郵箱 | varchar(200) | 是 |
sex_types | 性別 | int(11) | 是 |
ziyuanzhe_delete | 假刪 | int(11) | 是 |
create_time | 創建時間 | timestamp | 是 |
第5章?系統實現
這里主要是對系統設計實現進行描述,通過系統的設計和數據庫的設計,通過編碼后變成了可以進行操作的界面,讓一切想法變成了結果,通過文字和具體程序操作界面的截圖之間的配合,可以把功能更直觀的描述起來。
5.1管理員功能實現
5.1.1 寵物信息管理
管理員進入如圖5-1所示的寵物信息管理界面之后,管理員點擊信息顯示欄中最右側的修改,刪除按鈕可依次完成寵物信息的修改,刪除操作,寵物信息包括寵物照片,寵物類型等信息。管理員在寵物信息管理界面點擊新增按鈕可以登記寵物信息。
圖5-1 寵物信息管理界面
5.1.2?寵物寄養管理
管理員進入如圖5-2所示的寵物寄養管理界面之后,管理員點擊信息顯示欄中最右側的詳情,刪除,審核按鈕可依次完成寵物寄養信息的詳情查看,刪除,審核操作。寵物寄養信息包括寄養日期,聯系人手機號,寄養天數等信息。
圖5-2 寵物寄養管理界面
5.1.3 寵物領養管理
管理員進入如圖5-3所示的寵物領養管理界面之后,管理員點擊信息顯示欄中最右側的修改,刪除按鈕可依次完成寵物領養信息的修改,刪除操作。寵物領養信息包括寵物圖片,是否被認領等信息。
圖5-3 寵物領養管理界面
5.1.4 寵物領養審核管理
管理員進入如圖5-4所示的寵物領養審核管理界面之后,管理員點擊信息顯示欄中最右側的詳情,刪除,審核按鈕可依次完成寵物領養信息的詳情查看,刪除,審核操作。寵物領養信息包括認領憑據,申請結果等信息。
圖5-4 寵物領養審核管理界面
5.2 自愿者功能實現
5.2.1 論壇管理
自愿者進入如圖5-5所示的論壇管理界面之后,自愿者點擊信息顯示欄中最右側的詳情,查看論壇回復按鈕可依次完成論壇帖子的詳情查看,查看論壇帖子的回復等操作。自愿者在論壇管理界面點擊新增按鈕也能發布論壇帖子。
圖5-5 論壇管理界面
5.2.2 寵物寄養查看
自愿者進入如圖5-6所示的寵物寄養查看界面之后,自愿者點擊信息顯示欄中最右側的詳情按鈕可完成寵物寄養信息的詳情查看操作,自愿者也能查詢寵物寄養信息,查詢條件包括根據寵物名稱或寵物類型等字段進行查詢。
圖5-6 寵物寄養查看界面
5.3 用戶功能實現
5.3.1 寵物信息
用戶進入如圖5-7所示的寵物信息界面之后,用戶可以查看寵物信息界面右側區域展示的系統推薦的寵物信息,可以在寵物信息界面的下方留言區域發布寵物留言。
圖5-7 寵物信息界面
5.3.2 寵物領養
用戶進入如圖5-8所示的寵物領養界面之后,用戶可以查看寵物領養界面右側區域展示的系統推薦的寵物領養信息,用戶可以領養可認領狀態的寵物。
圖5-8 寵物領養界面
5.3.3 在線論壇
用戶進入如圖5-9所示的在線論壇界面之后,用戶可以查看在線論壇界面展示的任意一條論壇帖子內容,并可以在完成論壇帖子的內容查看之后,發布個人評論。
圖5-9 在線論壇界面
5.3.4 寵物寄養管理
用戶進入如圖5-10所示的寵物寄養管理界面之后,用戶點擊信息顯示欄中最右側的詳情,刪除按鈕可依次完成寵物寄養信息的詳情查看,刪除操作。用戶在寵物寄養管理界面點擊新增按鈕即可發布寵物寄養信息。
圖5-10 寵物寄養管理界面
5.3.5 寵物領養審核管理
用戶進入如圖5-11所示的寵物領養審核管理界面之后,用戶點擊信息顯示欄中最右側的詳情,刪除按鈕可依次完成寵物領養審核信息的詳情查看,刪除操作。用戶可以查看寵物領養審核信息的申請狀態以及申請結果信息。
圖5-11 寵物領養審核管理界面