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