2023-2-2 前端達(dá)人
目錄
2.5 系統(tǒng)數(shù)據(jù)庫設(shè)計
一、前言介紹:
隨著現(xiàn)在網(wǎng)絡(luò)的快速發(fā)展,網(wǎng)上管理系統(tǒng)也逐漸快速發(fā)展起來,網(wǎng)上管理模式很快融入到了許多商家的之中,隨之就產(chǎn)生了“網(wǎng)上圖書購物系統(tǒng)”,這樣就讓網(wǎng)上圖書購物系統(tǒng)更加方便簡單。
對于本網(wǎng)上圖書購物系統(tǒng)的設(shè)計來說,系統(tǒng)開發(fā)主要是采用java語言技術(shù),在整個系統(tǒng)的設(shè)計中應(yīng)用MySQL數(shù)據(jù)庫來完成數(shù)據(jù)存儲,具體根據(jù)網(wǎng)上圖書購物系統(tǒng)的現(xiàn)狀來進行開發(fā)的,具體根據(jù)現(xiàn)實的需求來實現(xiàn)網(wǎng)上圖書購物系統(tǒng)網(wǎng)絡(luò)化的管理,各類信息有序地進行存儲,進入網(wǎng)上圖書購物系統(tǒng)頁面之后,方可開始操作主控界面,主要功能包括管理員:首頁、個人中心、圖書分類管理、回收類別管理、新書榜管理、特價區(qū)管理、舊書回收管理、用戶管理、訂單評價管理、回收預(yù)約管理、圖書回收管理、管理員管理、系統(tǒng)管理、訂單管理。前臺使用:首頁、新書榜、特價區(qū)、舊書回收、公告資訊、個人中心、后臺管理、購物車、客服。用戶:首頁、個人中心、訂單評價管理、回收預(yù)約管理、圖書回收管理、我的收藏管理、訂單管理等功能。
本系統(tǒng)主要講述了網(wǎng)上圖書購物系統(tǒng)開發(fā)背景,該系統(tǒng)它主要是對需求分析和功能需求做了介紹,并且對系統(tǒng)做了詳細(xì)的測試和總結(jié)。具體從業(yè)務(wù)流程、數(shù)據(jù)庫設(shè)計和系統(tǒng)結(jié)構(gòu)等多方面的問題。望能利用先進的計算機技術(shù)和網(wǎng)絡(luò)技術(shù)來改變目前的網(wǎng)上圖書購物系統(tǒng)狀況,提高管理效率。
二、系統(tǒng)分析:
可行性分析主要是針對這個項目開發(fā)是否有意義和價值觀來進行的全面分析,在分析的過程當(dāng)中發(fā)現(xiàn)這個系統(tǒng)所存在的不足之處。就拿這次網(wǎng)上圖書購物系統(tǒng)的設(shè)計與實現(xiàn)來說主要是針對一些用戶在發(fā)布網(wǎng)上圖書購物系統(tǒng)信息時遇到不方便的操作和問題來進行解決問題的,最后能夠讓網(wǎng)上圖書購物系統(tǒng)開發(fā)得到最大的用處。而且對于用戶方面我們可以提供給一個簡單方便操作的網(wǎng)上圖書購物系統(tǒng)。所以我們要計算開發(fā)這個系統(tǒng)它能否有效的解決好這個系統(tǒng)經(jīng)濟問題,在開發(fā)完成以后所帶來的利益是否大于開發(fā)過成當(dāng)中的成本。所以可行性的研究與分析是這個系統(tǒng)在開發(fā)和設(shè)計上是必不可缺少的一部分。從該系統(tǒng)文章的全部來看,我們要從以下幾個方面進行分析:
技術(shù)可行性:在技術(shù)方面我們要從現(xiàn)有自己掌握的技術(shù)能否設(shè)計出我們當(dāng)初所預(yù)定的目標(biāo)。
經(jīng)濟可行性:在這次系統(tǒng)開發(fā)和設(shè)計過程當(dāng)中所用的經(jīng)費是否大于以后給社會帶來的價值觀。
操作可行性:系統(tǒng)在用戶使用過程當(dāng)中是否方便、簡單,能否達(dá)到大部分的用戶會使用。
技術(shù)的可行性分析主要是針對開發(fā)該系統(tǒng)所用到技術(shù)進行分析,對于網(wǎng)上圖書購物系統(tǒng)的設(shè)計,可以在任何一個地方都進行使用和管理。通過當(dāng)前我們所學(xué)的程序開發(fā)和語言介紹利用以上的技術(shù)開發(fā)該系統(tǒng)是比較合適的。而且我們在使用的數(shù)據(jù)庫也是要保證這個系統(tǒng)的完整性、數(shù)據(jù)安全性好的條件。
經(jīng)濟可行性主要是決定這個系統(tǒng)是否具有價值存在,是否具有開發(fā)意義,如果開發(fā)的項目不能夠節(jié)約物品和資源,反而使用的大量的人力、財力和物力不成正比甚至小于投資成本,那么該項目是不具備開發(fā)意義和價值的。在開發(fā)本項目的初期,節(jié)約成本是最基本的,設(shè)計和開發(fā)都是由本人一人完成的,并且在開發(fā)中使我學(xué)習(xí)到了很多的知識,也開拓了自己的眼界,在通過可行性分析之后,該項目的利大于弊,所以該項目是具有開發(fā)意義和價值的。
網(wǎng)上圖書購物系統(tǒng)的開發(fā)登錄界面它是我們最常見的一種登錄窗口來完成的,用戶可以使電腦來進行登錄并簡單的訪問不需要做任何的操作。對于此次的系統(tǒng)開發(fā)它主要是基于B/S結(jié)構(gòu)和java技術(shù)及MySQL數(shù)據(jù)庫來完成,讓系統(tǒng)開發(fā)更加完美和完善,所以我們開出的系統(tǒng)界面更加人性化,用戶使用也更加方便。而且系統(tǒng)在使用過程當(dāng)中也擁有方便操作、易管理等特點。
經(jīng)過以上的敘述,所以開發(fā)此系統(tǒng)在經(jīng)濟上、技術(shù)上是滿足開發(fā)條件的。
1.如果我們想要對前后臺處理的層次分明那么我們就要采用B/S模式來進行系統(tǒng)的開發(fā)這樣就可以方便用戶的使用。
2.對于系統(tǒng)的開發(fā)和設(shè)計我們就要采用大家日常所需要的要求,這樣一來可以提高系統(tǒng)的適用性也能保證系統(tǒng)利用價值。對于一個系統(tǒng)來說一個好的框架是很重要的,因為一個好的框架它可以提高系統(tǒng)的穩(wěn)定和高效性。
3.在系統(tǒng)界面上也要設(shè)計一個方便快捷的登錄界面,這樣就可以提高用戶對系統(tǒng)操作性和適用性。
4.在系統(tǒng)模塊設(shè)計當(dāng)中我們要對系統(tǒng)各個模塊進行合理簡化和設(shè)計,這樣就能提高系統(tǒng)使用性。
5.對于一個完整的系統(tǒng)來說對于它的測評和測試是比較重要的,所以我們在軟件設(shè)計程序中要保持軟件占用的時間和速度快的特點。
6.對于這個系統(tǒng)來說我們首先要考慮所設(shè)計出的系統(tǒng)它具有那些突破和體現(xiàn),所以我們盡力去改進這個系統(tǒng)去適應(yīng)用戶。
對于一個新的網(wǎng)站來說開發(fā)新網(wǎng)站我們就要做出這個系統(tǒng)的任務(wù)需求分析,因為對系統(tǒng)分析的質(zhì)量好壞它可以決定這個網(wǎng)站開發(fā)的意義,俗話說得好一個好的開頭是成功的一半,對于開發(fā)這個網(wǎng)上圖書購物系統(tǒng)來說前期的分析是比較重要的,所以任務(wù)分析它可以決定這系統(tǒng)的開展和設(shè)計,這樣就可以保證用戶滿意性。
任務(wù)的需求它能決定這個系統(tǒng)開發(fā)過程當(dāng)中一個重要環(huán)節(jié),所以我們在系統(tǒng)開發(fā)過程所用質(zhì)量是比較重要的,因為我們在系統(tǒng)應(yīng)用過程當(dāng)中不一定那會出現(xiàn)問題,所以我們在進行對系統(tǒng)分析是比較重要的,因為它可以決定這個系統(tǒng)功能和需求。
本課題要求實現(xiàn)一套網(wǎng)上圖書購物系統(tǒng)的開發(fā)與實現(xiàn),主要實現(xiàn)功能包括管理員:首頁、個人中心、圖書分類管理、回收類別管理、新書榜管理、特價區(qū)管理、舊書回收管理、用戶管理、訂單評價管理、回收預(yù)約管理、圖書回收管理、管理員管理、系統(tǒng)管理、訂單管理,
前臺使用:首頁、新書榜、特價區(qū)、舊書回收、公告資訊、個人中心、后臺管理、購物車、客服,
用戶:首頁、個人中心、訂單評價管理、回收預(yù)約管理、圖書回收管理、我的收藏管理、訂單管理 網(wǎng)上圖書購物系統(tǒng)。
前端用戶發(fā)送登錄請求-驗證輸入的賬號虛線-執(zhí)行數(shù)據(jù)查詢-返回查詢結(jié)果-判斷用戶是否存在-前端根據(jù)結(jié)果集執(zhí)行不同的操作。
通過系統(tǒng)需求分析,本網(wǎng)上圖書購物系統(tǒng)主要實現(xiàn)功能包括;管理員:首頁、個人中心、圖書分類管理、回收類別管理、新書榜管理、特價區(qū)管理、舊書回收管理、用戶管理、訂單評價管理、回收預(yù)約管理、圖書回收管理、管理員管理、系統(tǒng)管理、訂單管理。用戶:首頁、個人中心、訂單評價管理、回收預(yù)約管理、圖書回收管理、我的收藏管理、訂單管理等功能。其功能結(jié)構(gòu)圖如下圖所示。
在該系統(tǒng)的信息中,由于數(shù)據(jù)庫的支持,我們可以對數(shù)據(jù)庫進行收集、整理、更新和加工等操作。由于數(shù)據(jù)庫的存儲功能強大,所以數(shù)據(jù)庫已經(jīng)成為了計算機必不可少的,一個數(shù)據(jù)庫的好壞直接影響該系統(tǒng)的質(zhì)量和效率。一個系統(tǒng)中的數(shù)據(jù)庫是必不可少的,并且起著決定性因素。通過之前的系統(tǒng)分析,可以規(guī)劃出本系統(tǒng)中使用的主要等,下面設(shè)計出這幾個關(guān)鍵實體的實體關(guān)系圖。
訂單管理實體E-R圖如圖4-2所示
三、功能截圖:
通過填寫用戶名、密碼、角色等信息,輸入完成后選擇登錄即可進入網(wǎng)上圖書購物系統(tǒng)。
網(wǎng)上圖書購物系統(tǒng),在系統(tǒng)首頁可以查看首頁、新書榜、特價區(qū)、舊書回收、公告資訊、個人中心、后臺管理、購物車、客服等內(nèi)容。
新書榜,在新書榜頁面可以填寫圖書名稱、分類、標(biāo)簽、圖片、作者、出版社、發(fā)行日期、價格等內(nèi)容進行立即購買。
圖書頁面,可以收藏,加入購物車,查看詳情以及評論和購買等操作。
購物車詳情,可以添加數(shù)量和刪除。點擊購買進行模擬支付結(jié)賬。
選擇收貨地址后點擊支付下單:
支付成功后查看物流狀態(tài)信息:
查看回收詳情,點擊回收預(yù)約填寫相關(guān)信息,完成后管理員進行審核。
個人中心可以查看修改個人信息,查看訂單得各種狀態(tài),以及對收貨地址進行查看修改和收藏進行查看。也可以收貨地址頁面可以填寫聯(lián)系人、手機號碼、地址、默認(rèn)等內(nèi)容進行添加地址
普通用戶后臺管理:
可以對客服進行留言聊天。
管理員對新書榜管理查看圖書名稱、分類、標(biāo)簽、圖片、作者、出版社、發(fā)行日期、價格等信息進行詳情、刪除、修改、查看等操作。
四、代碼實現(xiàn):
-
-
/**
-
* 新書榜
-
* 后端接口
-
* @author
-
* @email
-
* @date 2022-01-18 07:36:34
-
*/
-
@RestController
-
@RequestMapping("/xinshubang")
-
public class XinshubangController {
-
@Autowired
-
private XinshubangService xinshubangService;
-
-
/**
-
* 后端列表
-
*/
-
@RequestMapping("/page")
-
public R page(@RequestParam Map<String, Object> params,XinshubangEntity xinshubang, HttpServletRequest request){
-
-
EntityWrapper<XinshubangEntity> ew = new EntityWrapper<XinshubangEntity>();
-
PageUtils page = xinshubangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xinshubang), params), params));
-
return R.ok().put("data", page);
-
}
-
-
/**
-
* 查詢
-
*/
-
@RequestMapping("/query")
-
public R query(XinshubangEntity xinshubang){
-
EntityWrapper< XinshubangEntity> ew = new EntityWrapper< XinshubangEntity>();
-
ew.allEq(MPUtil.allEQMapPre( xinshubang, "xinshubang"));
-
XinshubangView xinshubangView = xinshubangService.selectView(ew);
-
return R.ok("查詢新書榜成功").put("data", xinshubangView);
-
}
-
-
/**
-
* 后端詳情
-
*/
-
@RequestMapping("/info/{id}")
-
public R info(@PathVariable("id") Long id){
-
XinshubangEntity xinshubang = xinshubangService.selectById(id);
-
xinshubang.setClicknum(xinshubang.getClicknum()+1);
-
xinshubang.setClicktime(new Date());
-
xinshubangService.updateById(xinshubang);
-
return R.ok().put("data", xinshubang);
-
}
-
-
-
/**
-
* 前端保存
-
*/
-
@RequestMapping("/add")
-
public R add(@RequestBody XinshubangEntity xinshubang, HttpServletRequest request){
-
xinshubang.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
-
//ValidatorUtils.validateEntity(xinshubang);
-
-
xinshubangService.insert(xinshubang);
-
return R.ok();
-
}
-
-
-
/**
-
* 刪除
-
*/
-
@RequestMapping("/delete")
-
public R delete(@RequestBody Long[] ids){
-
xinshubangService.deleteBatchIds(Arrays.asList(ids));
-
return R.ok();
-
}
-
-
/**
-
* 前端智能排序
-
*/
-
@IgnoreAuth
-
@RequestMapping("/autoSort")
-
public R autoSort(@RequestParam Map<String, Object> params,XinshubangEntity xinshubang, HttpServletRequest request,String pre){
-
EntityWrapper<XinshubangEntity> ew = new EntityWrapper<XinshubangEntity>();
-
Map<String, Object> newMap = new HashMap<String, Object>();
-
Map<String, Object> param = new HashMap<String, Object>();
-
Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
-
while (it.hasNext()) {
-
Map.Entry<String, Object> entry = it.next();
-
String key = entry.getKey();
-
String newKey = entry.getKey();
-
if (pre.endsWith(".")) {
-
newMap.put(pre + newKey, entry.getValue());
-
} else if (StringUtils.isEmpty(pre)) {
-
newMap.put(newKey, entry.getValue());
-
} else {
-
newMap.put(pre + "." + newKey, entry.getValue());
-
}
-
}
-
params.put("sort", "clicknum");
-
-
params.put("order", "desc");
-
PageUtils page = xinshubangService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xinshubang), params), params));
-
return R.ok().put("data", page);
-
}
-
-
-
}
-
<!DOCTYPE html>
-
<html>
-
<head lang="en">
-
<meta charset="utf-8">
-
<title>新書榜</title>
-
<meta name="keywords" content="" />
-
<meta name="description" content="" />
-
<meta name="renderer" content="webkit">
-
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
-
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
-
<link rel="stylesheet" href="../../layui/css/layui.css">
-
<link rel="stylesheet" href="../../xznstatic/css/common.css"/>
-
<link rel="stylesheet" href="../../xznstatic/css/style.css"/>
-
<script type="text/javascript" src="../../xznstatic/js/jquery-1.11.3.min.js"></script>
-
<script type="text/javascript" src="../../xznstatic/js/jquery.SuperSlide.2.1.1.js"></script>
-
</head> </div>
-
<div class="pager" id="pager" :style="{textAlign:1==1?'left':1==2?'center':'right'}"></div>
-
</div>
-
</div
-
</div>
-
<script src="../../layui/layui.js"></script>
-
<script src="../../js/vue.js"></script>
-
<script src="../../js/config.js"></script>
-
<script src="../../modules/config.js"></script>
-
<script src="../../js/utils.js"></script>
-
<script>
-
// 獲取輪播圖 數(shù)據(jù)
-
http.request('config/list', 'get', {
-
page: 1,
-
limit: 5
-
}, function(res) {
-
if (res.data.list.length > 0) {
-
let swiperList = [];
-
res.data.list.forEach(element => {
-
if (element.value != null) {
-
swiperList.push({
-
img: element.value
-
});
-
}
-
});
-
vue.swiperList = swiperList;
-
-
vue.$nextTick(() => {
-
carousel.render({
-
elem: '#test1',
-
width: '100%',
-
height: '430px',
-
arrow: 'hover',
-
anim: 'default',
-
autoplay: 'true',
-
interval: '3000',
-
indicator: 'inside'
-
});
-
});
-
-
//類型查詢
-
categoryList();
-
//類型搜索
-
$(document).on("click", ".category-search", function(e){
-
vue.swiperIndex = $(this).attr('index')
-
pageList(e.target.innerText);
-
});
-
// 獲取列表數(shù)據(jù)
-
http.request('xinshubang/list', 'get', param, function(res) {
-
vue.dataList = res.data.list
-
// 分頁
-
laypage.render({
-
elem: 'pager',
-
count: res.data.total,
-
limit: limit,
-
groups: 3,
-
layout: ["prev","page","next"],
-
theme: '#065279',
-
jump: function(obj, first) {
-
param.page = obj.curr;
-
//首次不執(zhí)行
-
if (!first) {
-
http.request('xinshubang/list', 'get', param, function(res) {
-
vue.dataList = res.data.list
-
})
-
}
-
});
-
window.xznSlide = function() {
-
jQuery(".banner").slide({mainCell:".bd ul",autoPlay:true,interTime:5000});
-
jQuery("#ifocus").slide({ titCell:"#ifocus_btn li", mainCell:"#ifocus_piclist ul",effect:"leftLoop", delayTime:200, autoPlay:true,triggerTime:0});
-
jQuery("#ifocus").slide({ titCell:"#ifocus_btn li", mainCell:"#ifocus_tx ul",delayTime:0, autoPlay:true});
-
jQuery(".product_list").slide({mainCell:".bd ul",autoPage:true,effect:"leftLoop",autoPlay:true,vis:5,trigger:"click",interTime:4000});
-
};
-
</script>
-
</body>
-
</html>
五、文檔目錄:
六、項目總結(jié):
對于本次的系統(tǒng)開發(fā)來看,它主要是把我以前所學(xué)的知識進行了一次綜合的應(yīng)用。經(jīng)過這次畢業(yè)設(shè)計的制作它主要是把我以前所學(xué)的理論知識應(yīng)用到社會實踐當(dāng)中。通過這一次的網(wǎng)上圖書購物系統(tǒng)的設(shè)計與實現(xiàn)它能夠有效把計算機知識與實際問題相互應(yīng)用,通過計算機網(wǎng)絡(luò)技術(shù)來解決用戶生活當(dāng)中的實際問題,從而提高我的編程能力。雖然在這次畢業(yè)設(shè)計當(dāng)中我遇到了很多的問題和困難,但是通過不斷的調(diào)試和老師的幫助讓我圓滿的完成了這次畢業(yè)設(shè)計。通過這次畢業(yè)設(shè)計的制作讓我對計算機實際應(yīng)用得到了很強的鍛煉,同時也大大的提高了我的動手動腦能力,讓我也感受到了其中的樂趣和喜悅。
通過這次項目設(shè)計的撰寫把我在大學(xué)期間所學(xué)到的東西都應(yīng)用上了,但是我覺得還是微不足道的,因為在這次畢業(yè)設(shè)計當(dāng)中讓我深深的了解到對于軟件開發(fā)和學(xué)習(xí)理論知識它是兩個完全不同的概念。但是通過這次軟件的開發(fā)讓我在以后的工作當(dāng)中打下了良好的基礎(chǔ)。
藍(lán)藍(lán)設(shè)計( www.bouu.cn )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、 網(wǎng)站建設(shè) 、平面設(shè)計服務(wù)、UI設(shè)計公司、界面設(shè)計公司、UI設(shè)計服務(wù)公司、數(shù)據(jù)可視化設(shè)計公司、UI交互設(shè)計公司、高端網(wǎng)站設(shè)計公司、UI咨詢、用戶體驗公司、軟件界面設(shè)計公司
藍(lán)藍(lán)設(shè)計的小編 http://www.bouu.cn