周奕
摘要:眾所周知,數(shù)據(jù)庫在一個(gè)網(wǎng)站或者軟件的開發(fā)中是很重要的一個(gè)部分,這篇文章的主要目的是讓初學(xué)者對(duì)關(guān)系型數(shù)據(jù)庫(Mysql)有一個(gè)簡單的、初步的了解。在此,借用一個(gè)簡單的“電商水果平臺(tái)”后臺(tái)數(shù)據(jù)庫為例,通過對(duì)開發(fā)人員根據(jù)何種原則、如何創(chuàng)建數(shù)據(jù)庫表流程的了解,以及用戶在表單中填寫了相關(guān)數(shù)據(jù),在模型層接收到參數(shù)信息之后,對(duì)應(yīng)的后臺(tái)數(shù)據(jù)庫中數(shù)據(jù)的修改是如何進(jìn)行的。因此,在按照數(shù)據(jù)庫的設(shè)計(jì)原則和基本步驟創(chuàng)建出三個(gè)基本表之后,通過對(duì)fruitshop.sql數(shù)據(jù)庫中的user、fruit、order三個(gè)基本表進(jìn)行增刪查改四個(gè)操作后,就能夠改動(dòng)這三個(gè)基本表的數(shù)據(jù)。
關(guān)鍵字:電商;MySql數(shù)據(jù)庫;三層架構(gòu)
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2020)14-0272-02
1系統(tǒng)整體結(jié)構(gòu)設(shè)計(jì)
本水果電商平臺(tái)是在動(dòng)態(tài)的Web工程下,基于JavaEE(Ja-va Platform Enterprise Edition)的開發(fā)技術(shù),采用B/S(Browser/Server)模式和MVC(Model-View-Controller)三層架構(gòu),主要采用Java語言進(jìn)行編寫并配合使用三層架構(gòu)、JSP、Servlet、JavaS-cript等技術(shù)實(shí)現(xiàn)相應(yīng)的功能。并聯(lián)合MySql數(shù)據(jù)庫開發(fā)并更新后臺(tái)數(shù)據(jù)。
其中JavaEE是企業(yè)級(jí)應(yīng)用程序的版本,能夠幫助人們開發(fā)和部署可移植、健壯、可伸縮且安全的服務(wù)器端的Java應(yīng)用程序。B/S模式也是現(xiàn)在比較流行的客戶和服務(wù)器進(jìn)行交互的模式,并且相比較于C/S(ClienffServer)模式,維護(hù)和升級(jí)程序的成本并不高,因?yàn)椴恍枰惭b軟件,可擴(kuò)展性更大,而且使用上更加的方便、靈活。MVC分別指的是模型、視圖和控制器(如下圖一所示)。三層之間的依賴關(guān)系也是相鄰層之間才能調(diào)用,絕對(duì)不能跨層調(diào)用和反向調(diào)用。
模型主要是對(duì)數(shù)據(jù)庫中的基本表進(jìn)行相關(guān)操作,分為拼寫和執(zhí)行SQL語句。自定義JBHelper類,在類中編寫.iava文件用于執(zhí)行SQL語句。自定義DA0(Data Access Object)包,編寫以.dao結(jié)尾的類,用于拼寫SOL語句。
視圖位于最外層,就是指前端部分,與用戶的交互最為密切。用于接收用戶輸入的數(shù)據(jù)和輸出相關(guān)數(shù)據(jù),是用戶和平臺(tái)之間進(jìn)行交互的界面。
控制器是數(shù)據(jù)訪問層和界面層之間的通道,業(yè)務(wù)層是MVC中的主要部分,主要是實(shí)現(xiàn)了業(yè)務(wù)邏輯,類名通常都是以ser-vices結(jié)尾。
2數(shù)據(jù)庫的設(shè)計(jì)
2.1數(shù)據(jù)庫的設(shè)計(jì)原則
2.1.1實(shí)體之間的關(guān)系
實(shí)體是指在現(xiàn)實(shí)中客觀存在并且人們能夠進(jìn)行區(qū)分的物體。實(shí)體之間存在三種關(guān)系,分別是一對(duì)一、一對(duì)多、多對(duì)多的關(guān)系。在數(shù)據(jù)庫中,我們可以將實(shí)體對(duì)應(yīng)為基本表去理解,在明確了實(shí)體之間的關(guān)系之后,設(shè)計(jì)數(shù)據(jù)庫表就非常便捷。
2.1.2主鍵與外鍵
一般來說,一個(gè)實(shí)體不能主鍵和外鍵都沒有。主鍵就是抽象的實(shí)體;外鍵是指在某個(gè)表中不是主鍵,但在另一個(gè)表中是主鍵。主鍵與外鍵的聯(lián)系就說明了實(shí)體與實(shí)體之間的關(guān)系,在使用時(shí),就可以依靠這種相互關(guān)系去操作數(shù)據(jù)庫。
2.1.3范式標(biāo)準(zhǔn)
基本表及其各個(gè)字段之間的關(guān)系,應(yīng)該盡量滿足第三范式(即在滿足第二范式的基礎(chǔ)上消除元素之間互相依賴的關(guān)系)。但是,并不是說滿足了第三范式要求的數(shù)據(jù)庫就是最好的,有時(shí)在設(shè)計(jì)數(shù)據(jù)庫是為了能夠提高數(shù)據(jù)庫的使用效率,就要采用以時(shí)間換空間的方法,因此在設(shè)計(jì)基本表時(shí)要適當(dāng)?shù)卦黾尤哂唷?/p>
2.2數(shù)據(jù)庫設(shè)計(jì)的基本步驟
按照規(guī)范化設(shè)計(jì)的原則,數(shù)據(jù)庫的設(shè)計(jì)大體上可以分為六個(gè)階段,分別是進(jìn)行需求分析下、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、物理結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫的實(shí)施和數(shù)據(jù)庫的運(yùn)行與維護(hù)。
2.3數(shù)據(jù)庫表
本平臺(tái)所使用的數(shù)據(jù)庫名是fruitshop.sql,下面是所用到的表結(jié)構(gòu)。
2.3.1 user表(用戶表)
用來存儲(chǔ)用戶的信息,主鍵為username,表中的屬性有usemame(用戶名)、password(密碼)、tel(電話),屬性值均不允許為空。
2.3.2 fruit表(水果表)
用來存儲(chǔ)水果的信息,主鍵為fruitname,表中的屬性有fTuitname(水果名)、price(價(jià)格)、inventory(庫存量)、discount(折扣)、field(產(chǎn)地),屬.陛值均不允許為空。
2.3.3 order表(訂單表)
用來生成用戶訂單的表,并且同時(shí)能夠修改水果表中的數(shù)據(jù)。主鍵為username,表中的屬性有number(訂單號(hào))、username(用戶名)、fruitname(水果名)、price(價(jià)格)、quantiIy(數(shù)量)、discount(折扣)、sum(總計(jì)),屬性值均不允許為空。
3數(shù)據(jù)庫中表的有關(guān)操作
3.1初始化表
表的初始化在表建成之后按照要求往表中加人數(shù)據(jù)即可,在此不多做贅述。
3.2user表