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