1 摘 ?要
使用舊方法對美食信息推薦系統的信息進行系統化管理已經不再讓人們信賴了,把現在的網絡信息技術運用在美食信息推薦系統的管理上面可以解決許多信息管理上面的難題,比如處理數據時間很長,數據存在錯誤不能及時糾正等問題。這次開發的美食信息推薦系統對菜譜管理、字典管理、論壇管理、論壇收藏管理、飲食資訊管理、用戶管理、管理員管理等進行集中化處理。經過前面自己查閱的網絡知識,加上自己在學校課堂上學習的知識,決定開發系統選擇B/S模式這種高效率的模式完成系統功能開發。這種模式讓操作員基于瀏覽器的方式進行網站訪問,采用的主流的Java語言這種面向對象的語言進行美食信息推薦系統程序的開發,在數據庫的選擇上面,選擇功能強大的Mysql數據庫進行數據的存放操作。美食信息推薦系統的開發讓用戶查看菜譜管理信息變得容易,讓管理員高效管理菜譜管理信息。
2?相關技術
2.1?MySQL數據庫
MySQL是一種具有安全系數、安全系數、混合開發性、高效化等特征的輕量關聯數據庫智能管理系統。MySQL由C語言和C語言構成 ?由C語言和C語言撰寫成的,由于C語言和C語言 ?這是混合開發的,因此MySQL源碼是生命期的。MySQL提供多種多樣數據種類,常見的數據種類包含[34]。伴隨著數據庫技術發展,MySQL逐步形成數據庫管理方法的重要工具之一。它不僅能提供簡單實用的操作作用,還能實現復雜多變的數據檢索方法和查詢記錄導出方式。因為MySQL具有較好的兼容模式和擴展性,因而廣泛應用于各行各業。
2.2 Java語言技術
Java語言已經存在了25年有余。通過這些年的發展趨勢,it行業在市場占有率上仍然占據一半,仍然受到了很多程序員的工作鐘愛。許多從業者都是在學習培訓。近年來隨著從業者的提高,Java語言的位置并沒減少,算得上是常青藤。Java語言學習培訓比較簡單,自然,它是對于C前輩們的 ?而言的,C ?語言非常強勁。Java取消了許多特點,如go這種闡述,也取消了主文件,讓所有文件夾全是類,類是二維數組以及各種對象,也使Java處理一些對象的引入和回收利用,讓開發者只需建立對象,應用對象,編寫代碼邏輯,不需要留意性能,讓各種各樣文件存儲給Java自己解決,你能花很多時間科學研究應用軟件相互關系,使研發更為集中化,如同跑車駕駛員一樣,只要了解各種汽車的性能,實際操作,不需要科學研究如何生產車輪子,使軟件開發更為詳盡。
2.3?SpringBoot框架
在過去的兩三年的Spring生態系統中,最令人興奮的是Spring Boot框架。或許從取名上能夠得知這一框架設計初心:快速開啟Spring運用。因此Spring 實質上,Boot應用程序是一個根據Spring框架的應用程序。這是Spring“協議書先于配置”理論的良好實踐物質。可以幫助開發者迅速、更有效地搭建根據Spring生態系統的應用程序。
2.4 B/S模式框架
B/S架構是互聯網行業區別C/S架構,用以敘述瀏覽器與服務器之間的架構方式。一般來說,挑選B/S架構的主要原因是維修方便。當軟件開發時,能夠在本地進行檢測。一般綜合開發工具都有各自的開發與一鍵部署。
3 系統分析
3.1系統可行性分析
需要使用大部分精力開發的美食信息推薦系統為了充分降低開發風險,特意在開發之前進行可行性分析這個驗證系統開發是否可行的步驟。本文就會從技術角度,經濟角度,還有用戶使用的程序的運行角度進行綜合闡述。
3.1.1 技術可行性分析
開發程序選擇的是面向對象的,功能強大的,簡單易用的Java程序設計語言,數據庫的開發工具使用到了Mysql數據庫,由于自己之前接觸過一些簡單的程序開發方面的設計作品,所以對Myeclipse工具的使用比較熟練,對于數據庫的操作技巧也有一定的積累。另外,程序開發需要在自己電腦上安裝的軟件并不多,在win7操作系統的大環境下,能夠完全搭建好程序開發的操作環境,比如Myeclipse工具,Mysql數據庫工具,游覽器,以及處理程序圖片的Photoshop工具等都能安裝在自己的電腦上。總的說來,開發這個程序在技術上是可以實現的。
3.1.2 經濟可行性分析
開發出來的程序并不是朝著商業程序的方向進行設計開發的,它只是作為一個畢業設計項目進行開發,主要用于檢驗學生在學校所學知識的一個檢驗,也鍛煉學生運用網絡,圖書等工具進行自學的能力。所以開發這個程序軟件并不會涉及到經濟上面的開銷,在開發軟件的選擇上也不會額外付費安裝軟件,在開發軟件的官網上面就可以下載需要的軟件,并根據提示的安裝步驟安裝軟件到自己的電腦上面。總的說來,開發這個程序在經濟上也不存在經費支出。
3.1.3 運行可行性分析
因為這個程序軟件從開始開發到開發截止都是根據用戶的需求進行定制,考慮到此程序軟件是面向廣大普通操作用戶,鑒于他們的知識文化水平,特意開發出一個可操作性強的,能夠很容易讓使用用戶上手的,具有可視化操作界面的一個程序軟件。總的說來,這個程序站在用戶運行程序的角度上分析,是不存在操作難的問題的。用戶只要打開程序就可以免去專人培訓進行程序功能操作。
經過上面從技術的角度,從經濟的角度,從程序運行的角度這三個角度分析現打算開發的程序,可以得出該程序軟件是可以進行開發操作的。
3.2系統性能分析
3.2.1 系統安全性
程序在使用中是不允許其他訪問者隨意竊取程序里面的隱秘信息,也不允許其他操作者越權操作其他管理用戶操作的功能,要真正杜絕這些現象就必須在程序開發之前把程序的安全性給考慮進去。
比如現在很多程序都會把用戶注冊的功能給考慮進去,讓用戶在注冊頁面功能區填寫自己的個人信息,這些數據信息涵蓋了用戶本人的姓名,用戶對程序登錄設置的密碼,用戶經常使用的郵箱,用戶的常用聯系方式還有用戶的所住地址等信息,這些信息都是設計到用戶本人的隱私,那么這些信息在傳輸給程序后臺時,是需要進行管理并保存至對應的數據庫文件里面。要是有人惡意竊取程序的數據信息,也就會讓那些注冊了此程序軟件的用戶的個人隱秘信息都會遭到泄露。這些信息落入其他不法分子手里,他們極有可能根據用戶的隱私信息去騷擾用戶,并把這些信息用于各種商業用途謀取其他非法的利益。所以數據安全性是一個系統能不能使用的首要標準。
3.2.2 數據完整性
數據完整性是確保數據信息是否具有可靠性,是否具有參考價值的一個重要因素,數據信息只描述一部分,或者必有的數據信息反而為空等現象都是代表著這個數據信息不完整,有數據缺陷,這是個很嚴肅的問題,因為這樣的數據信息跟垃圾信息沒什么兩樣。
說到數據完整性,不得不提最常用的程序表單功能。這些表單主要就是提取廣大用戶的數據信息的,需要廣大用戶根據表單上的要求,填寫自己的姓名信息,以及自己的聯系方式信息,有些也會有額外的信息填寫要求,有必須要填的選項,也有不需要必填的選項。假如廣大用戶為了保護自己的隱私,或者不想受到其他人的騷擾,不填寫必填項等信息,廣大用戶在最后提交此表單的時候,往往都是提交不了的。
數據完整性不僅僅限于登記的數據要完整,它也需要程序里面的所有數據信息之間存在關聯,而且這種聯系也是要求不能出差錯的。
由于數據表之間也會存在一定的聯系,所以同一個數據也會出現在另一個表格里面,那么這兩個表格記錄的同一個數據應該是一樣的。不能夠是同樣的數據信息在不同表中不一樣。
3.2.3系統可擴展性
一切事物都是一直在發展,程序員開發軟件也需要帶著發展的思維去進行軟件開發操作,這樣的話,開發出來的程序在應對管理所需時,也會相對應的進行程序升級與更新。不論是功能完善還是數據庫升級都能在原來的基礎上對原有程序進行迭代升級。讓開發出來的程序能夠走得越來越遠。這也是廣大用戶對程序軟件的使用要求。
3.3系統流程分析
管理員假如要操作系統提供的功能,那么管理員就要在系統的登錄界面,填寫管理員登錄的賬號信息,填寫相應的密碼信息,管理員需要保證這兩者能夠驗證身份的賬號以及密碼信息的正確性,這樣管理員就可以通過登錄界面進入系統后臺操作界面。圖3.1就是開發的程序軟件美食信息推薦系統它的操作流程圖。
圖3.1?系統操作流程圖
3.3.1系統登錄流程
美食信息推薦系統的登錄流程,針對的角色就是操作員的操作角色。在登錄界面需要的必填信息就是賬號信息,配上登錄的密碼信息就能登錄美食信息推薦系統,需要注意的就是必填的賬號信息和登錄密碼信息,都需要進行驗證,系統會判斷賬號還有填寫的密碼信息的正確性,只有這兩者信息都正確了,就能成功登錄美食信息推薦系統了。系統登錄流程圖如下圖。
圖3.2 系統登錄流程圖
3.3.2信息添加流程
用戶在添加信息的界面填寫的任何數據信息也是需要驗證的,系統會判斷用戶填寫信息的格式還有數據信息是不是合法信息,如果用戶填寫的信息是合法內容,系統就會在數據庫對應的數據表里面添加信息。添加信息流程如下圖。
圖3.3?添加信息流程圖
3.3.3信息刪除流程
對于那些已經失效的信息,需要用戶及時進行刪除,這樣有利于騰出空間存放其他信息。刪除信息也是先從數據庫對應數據表里面刪除數據,接著就是更新數據表的信息。這樣刪除的數據,在用戶操作界面就查看不到了。信息刪除流程如下圖所示。
圖3.4?信息刪除流程圖
3.4系統功能分析
美食信息推薦系統具有管理員角色,用戶角色,這幾個操作權限。
美食信息推薦系統針對管理員設置的功能有:添加并管理各種類型信息,管理用戶賬戶信息,管理菜譜管理信息,管理公告信息等內容。
美食信息推薦系統針對用戶設置的功能有:查看并修改個人信息,查看菜譜管理信息,查看公告信息等內容。
4 系統設計
4.1系統概要設計
美食信息推薦系統并沒有使用C/S結構,而是基于網絡瀏覽器的方式去訪問服務器,進而獲取需要的數據信息,這種依靠瀏覽器進行數據訪問的模式就是現在用得比較廣泛的適用于廣域網并且沒有網速限制要求的B/S結構,圖4.1就是開發出來的程序工作原理圖。
圖4.1 程序工作的原理圖
4.2系統功能結構設計
美食信息推薦系統針對管理員設置的功能有:添加并管理各種類型信息,管理用戶賬戶信息,管理菜譜管理信息,管理公告信息等內容。
美食信息推薦系統針對用戶設置的功能有:查看并修改個人信息,查看菜譜管理信息,查看公告信息等內容。
4.3數據庫設計
4.3.1數據庫E-R圖設計
程序設計是離不開對應數據庫的設計操作的,這樣的做法就是減少數據對程序的依賴性,所以數據庫的設計也是需要花費大量的日常時間來進行設計的,在設計中對程序開發需要存儲的數據信息進行實體劃分,先確認實體,然后設計實體的屬性等操作,這種設計就是數據庫設計里面不能少的必須有的E-R模型設計。為了降低程序設計的對應的數據庫設計難度,開發人員也可以使用相應的工具來進行E-R模型設計,現在市面上設計E-R模型的工具有PowerDesigner建模工具,Navicat制作工具,還有微軟的Visio繪圖工具。為了簡便起見,本程序在設計E-R模型的時候,就選用了微軟的Visio這款功能強大,操作便利的繪圖工具。
(1)下圖是論壇實體和其具備的屬性。
論壇實體屬性圖
(2)下圖是用戶實體和其具備的屬性。
用戶實體屬性圖
(3)下圖是論壇收藏實體和其具備的屬性。
論壇收藏實體屬性圖
(4)下圖是飲食資訊實體和其具備的屬性。
飲食資訊實體屬性圖
(5)下圖是菜譜實體和其具備的屬性。
菜譜實體屬性圖
4.3.2 數據庫表結構設計
本次程序開發選用的數據庫管理工具是Mysql數據管理工具,使用它存放數據也需要創建程序對應的數據庫文件,并命名剛創建的數據庫文件,有了數據庫也需要創建各種數據表來充實數據庫,在數據表的創建中,不僅需要對數據表命名,也需要對數據表的字段進行設計,包括每個數據表里面需要設置的字段名稱,字段對應的數據類型信息,字段的主鍵設置這個也是不可缺少的,因為每個數據表里面的主鍵就是標記著這個數據表跟其他數據表相區分的唯一標志。就相當于生活中的每個人都有姓名,但是上網搜索自己的名字,會發現全國上下有很多人的名字跟自己的名字一模一樣,包括姓氏以及名字,區分每個人的唯一信息就是每個人的身份證號信息,主鍵在數據表里面也是起著這樣的重要作用。下面就介紹本次開發的程序美食信息推薦系統的數據表結構信息。
表4.1菜譜表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | caipu_name | String | 菜譜名稱 | 是 |
3 | caipu_uuid_number | String | 菜譜編號 | 是 |
4 | caipu_photo | String | 菜譜照片 | 是 |
5 | caipu_weizhi | String | 小店位置 | 是 |
6 | caipu_video | String | 視頻推薦 | 是 |
7 | caipu_jiage | BigDecimal | 菜品價格 | 是 |
8 | caipu_types | Integer | 菜譜類型 | 是 |
9 | caipu_kouwei_types | Integer | 口味 | 是 |
10 | caipu_clicknum | Integer | 菜譜熱度 | 是 |
11 | caipu_content | String | 菜品介紹 | 是 |
12 | insert_time | Date | 錄入時間 | 是 |
13 | create_time | Date | 創建時間 | 是 |
表4.2字典表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | dic_code | String | 字段 | 是 |
3 | dic_name | String | 字段名 | 是 |
4 | code_index | Integer | 編碼 | 是 |
5 | index_name | String | 編碼名字 | 是 |
6 | super_id | Integer | 父字段id | 是 |
7 | beizhu | String | 備注 | 是 |
8 | create_time | Date | 創建時間 | 是 |
表4.3論壇表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | forum_name | String | 帖子標題 | 是 |
3 | yonghu_id | Integer | 用戶 | 是 |
4 | users_id | Integer | 管理員 | 是 |
5 | forum_content | String | 發布內容 | 是 |
6 | zan_number | Integer | 贊 | 是 |
7 | cai_number | Integer | 踩 | 是 |
8 | super_ids | Integer | 父id | 是 |
9 | forum_state_types | Integer | 帖子狀態 | 是 |
10 | insert_time | Date | 發帖時間 | 是 |
11 | update_time | Date | 修改時間 | 是 |
12 | create_time | Date | 創建時間 | 是 |
表4.4論壇收藏表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | forum_id | Integer | 論壇 | 是 |
3 | yonghu_id | Integer | 用戶 | 是 |
4 | forum_collection_types | Integer | 類型 | 是 |
5 | insert_time | Date | 收藏時間 | 是 |
6 | create_time | Date | 創建時間 | 是 |
表4.5飲食資訊表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | gonggao_name | String | 飲食資訊 | 是 |
3 | gonggao_photo | String | 圖片 | 是 |
4 | gonggao_types | Integer | 資訊類型 | 是 |
5 | insert_time | Date | 公告發布時間 | 是 |
6 | gonggao_content | String | 資訊詳情 | 是 |
7 | create_time | Date | 創建時間 | 是 |
表4.6用戶表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | yonghu_name | String | 用戶姓名 | 是 |
3 | yonghu_phone | String | 用戶手機號 | 是 |
4 | yonghu_id_number | String | 用戶身份證號 | 是 |
5 | yonghu_photo | String | 用戶頭像 | 是 |
6 | yonghu_email | String | 電子郵箱 | 是 |
7 | create_time | Date | 創建時間 | 是 |
表4.7管理員表
序號 | 列名 | 數據類型 | 說明 | 允許空 |
1 | Id | Int | id | 否 |
2 | username | String | 用戶名 | 是 |
3 | password | String | 密碼 | 是 |
4 | role | String | 角色 | 是 |
5 | addtime | Date | 新增時間 | 是 |
5 系統實現
5.1管理員功能介紹
5.1.1管理員登錄
系統登錄功能是程序必不可少的功能,在登錄頁面必填的數據有兩項,一項就是賬號,另一項數據就是密碼,當管理員正確填寫并提交這二者數據之后,管理員就可以進入系統后臺功能操作區。下圖就是管理員登錄頁面。
圖5.1 管理員登錄頁面
5.1.2 菜譜管理管理
項目管理頁面提供的功能操作有:查看菜譜管理,刪除菜譜管理操作,新增菜譜管理操作,修改菜譜管理操作。下圖就是菜譜管理管理頁面。
圖5.2 ?菜譜管理管理頁面
5.1.3 公告信息管理
公告信息管理頁面提供的功能操作有:新增公告,修改公告,刪除公告操作。下圖就是公告信息管理頁面。
圖5.3 公告信息管理頁面
5.1.4公告類型管理
公告類型管理頁面顯示所有公告類型,在此頁面既可以讓管理員添加新的公告信息類型,也能對已有的公告類型信息執行編輯更新,失效的公告類型信息也能讓管理員快速刪除。下圖就是公告類型管理頁面。
圖5.4 公告類型列表頁面
?