【文章內(nèi)容簡介】
三層邏輯體系結構,eshop的開發(fā)按照Windows DNA (Windows Distributed Internet Application,分布式互聯(lián)網(wǎng)應用結構),采用基于XML的三層B/S體系結構。Windows DNA提供了一種開發(fā)三層結構Web應用程序的通用方法是一個電子商務開發(fā)的良好環(huán)境。三層邏輯體系結構是指數(shù)據(jù)持久化層、業(yè)務邏輯層、用戶呈現(xiàn)層(JSP)。數(shù)據(jù)持久化層涉及到數(shù)據(jù)庫本身、存儲過程以及提供數(shù)據(jù)庫接口的組件;業(yè)務邏輯層指的是封裝了應用程序商務邏輯的組件;而表示層指的是用戶瀏覽器頁面,如圖52所示。MySQL數(shù)據(jù)持久化層業(yè)務邏輯層JSP圖51三層邏輯體系結構 logical architecture數(shù)據(jù)庫設計是指對于一個給定的應用環(huán)境,通過合理的邏輯設計和有效的物理設計來構造較優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫極其應用系統(tǒng),滿足用戶的各種信息需求。從數(shù)據(jù)應用系統(tǒng)和開發(fā)的全過程來考慮,數(shù)據(jù)庫的設計可分為六個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計、數(shù)據(jù)庫實施、數(shù)據(jù)庫的運行與維護,按照這樣的設計過程,數(shù)據(jù)庫結構設計的不同階段可形成數(shù)據(jù)庫的各級模式[3]。 數(shù)據(jù)庫需求設計家教網(wǎng)系統(tǒng)是對家長,教師,管理員這三種群體設計的,共分9個表,完成各個階段不同角色人物的需求。 數(shù)據(jù)庫概念結構設計在數(shù)據(jù)庫技術中,我們用模型的概念描述數(shù)據(jù)庫的結構與語義,對現(xiàn)實世界進行抽象。表示實體類型及實體間聯(lián)系的模型稱為“數(shù)據(jù)模型”,其中之一就是實體聯(lián)系模型(ER模型)。ER模型是獨立于計算機系統(tǒng)的模型,完全不涉及信息在系統(tǒng)中的表示,只是用來描述某個特定組織關心的信息結構,這類模型稱為“概念數(shù)據(jù)模型”[3]。在家教網(wǎng)系統(tǒng)中,存在用戶、老師、學生、訂單、新聞等幾個對象實體,以上述實體為例,一個老師可以選擇很多門課,一門課可以被很多老師選,一個用戶只可以注冊成老師或者學生,每個老師或?qū)W生都有固定的地區(qū),管理員可以發(fā)布很多條新聞,一個老師可以預定好幾個學生,生成不同的訂單,一個學生可以預定好幾個老師生產(chǎn)不同的訂單,一個用戶也可以發(fā)布好幾條留言,一條留言只能有一個用戶填寫。根據(jù)上述分析可對應的實體關系圖如下: 屬性 實體間聯(lián)系 實體類型圖52 ER圖的元素說明 ER diagram of the elements that圖53 總體ER圖 ER among the various entities of the overall plan圖54 用戶信息ER圖Fig 54 user information er chart圖55 教師信息ER圖Fig55 teachers information er chart圖56 學生信息ER圖Fig 56 students information er chart圖57 課程信息ER圖Fig57 Course information er chart圖58 留言板信息ER圖Fig58 Message information er chart圖59 大學信息ER圖Fig 59 University information er chart圖510 訂單信息ER圖Fig 510 Order information er chart圖511 新聞信息ER圖Fig 511 news information er chart 數(shù)據(jù)庫邏輯結構設計通過E-R圖分析,下面設計具體的邏輯結構。所涉及到的主要實體集及其屬性如下:User (id、、times、last_login_time、last_login_ip、level,power,city,password,role)Teacher(,tname,sex,sid,age,university,profession,status,language,describing,phone,photo,address)Student(id,,sname,sex,status,course,situation,zone,phone,address)Quickmessage(id,login_ip,phone,detail,city,times)Course (id,cid,ame)Orders(id,teacher,student,city,times,type,status)News(id,title,context,type,city,turn_id1,turn_id2,click_times)University(id,turn_id,university_name,city)本系統(tǒng)共涉及到9個表,分別是:用戶信息表user,教師信息表teacher,學生信息表student,新聞表news,訂單表orders,課程表course,大學表university。在本系統(tǒng)中數(shù)據(jù)庫具體表結構的設計:(1)用戶基本信息表 user用戶信息表用來記錄用戶的一些基本信息,其結構如表51所示。表51 user的結構Tab51 the structure of user字段名稱類型約束描述idint(10)auto_increment/pk用戶idvarchar(50)/用戶帳號(郵箱)Timesint(8)/用戶登錄次數(shù)last_login_timeint(20)/最近一次登錄時間last_login_ipvarchar(30)/最近一次登錄iplevelint(2)/用戶的會員級別Powerint(2)/管理權限cityvarchar(50)/所在城市passwordvarhcar(20)/密碼roleint (2)/身份選擇(如老師)(2)學生表 student學生表表示學生的基本信息,如表52所示。表52 student的結構Tab52 studentstructure字段名稱類型約束描述idint(20)auto_increment學員idvarchar(50)/用戶帳號snamevarchar(50)/學生名字sexvarchar(20)/性別statusvarchar(20)/所在年級coursevarchar(100)/要補課程situationvarchar(200)/學習水平(如 一般)zonevarchar(20)/所在縣(區(qū))phonevarchar(50)/聯(lián)系電話addressvarchar(200)/聯(lián)系地址(3)教師表 teacher教師表用來表示教師的詳細信息。其結構如表53所示。 teacher的結構Tab53 teacher structure字段名稱類型約束描述idint(20)auto_increment/pk教師idEmailvarchar(50)/用戶帳號Tnamevarchar(50)/老師名字Sexvarchar(20)/性別sidvarcher(18)/身份證號agevarchar(5)/年齡universityvarchar(50)/大學名稱Professionvarchar(50)/專業(yè)名稱Statusvarchar(20)/年級或在職教師Languagevarchar(20)/外語級別describingText/自我描述phonevarchar(50)/聯(lián)系電話photovarchar(20)/照片文件名Addressvarchar(200)/住址(4)課程表 course課程表表示課程的基本信息。結構如表54所示。表54 course 的結構Tab54 the structure of course字段名稱類型約束描述idint(5)auto_increment/pk表主鍵idcidint(5)/課程idamevarchar(30)/課程名(5)留言板表 quickmessage留言板表的詳細信息,結構如表55所示。表55 quickmessage的結構Tab55 the structure of quickmessage字段名稱類型約束描述idInt(10)auto_increment/pk留言idlogin_ipvarchar(30)/留言者名字phonevarchar(50)/聯(lián)系電話及名字detailText/留言內(nèi)容cityvarchar(20)/城市timesvarchar(30)/留言時間(6)高校表 university高校表用來存儲高校的信息。其結構如表56所示。表56 university的結構Tab56 the structure of university字段名稱類型約束描述idint(10)auto_increment/pk高校idturn_idint(10)/在本地區(qū)的排序號university_namevarchar(50)/高校名稱cityvarchar(50)/所在城市名稱(大連)(7)訂單表 orders訂單表用來存儲高校的信息。其結構如表57所示。表57 orders的結構Tab57 the structure of orders字段名稱類型約束描述Idint (5)auto_increment/pkidteachervarchar (30)/教師帳號studentvarchar (30)/學生帳號cityvarchar (50)/所在城市名稱timesLong/預定時間typeint(4)/訂單類型(t2s s2t)statusint (4)/訂單狀態(tài)(8)新聞表 news新聞表用來存儲高校的信息。其結構如表58所示。表58 news的結構Tab58 the structure of news字段名稱類型約束描述idint (10)auto_increment/pk文章idtitlevarchar (100)/文章標題contextText/文章內(nèi)容typeint (5)/所屬種類(新聞 幫助 家長感言等)cityvarchar (20)/文章所在城市turn_id1Int(5)/文章排序id1turn_id2Int(5)/ 文章排序id2click_timesint(10)/點擊次數(shù)(9)選課表 t_c選課表用來教師選課的信息。其結構如表59所示。表59 t_c的結構Tab56 the structure of t_c字段名稱類型約束描述idint (20)auto_increment/pk業(yè)務無關主鍵cidint (5)/課程編號teacher_idint (20)/教師編號 數(shù)據(jù)庫連接組件本系統(tǒng)用了兩種方法鏈接數(shù)據(jù)庫(1)通過Hibernare連接數(shù)據(jù)庫,連接的部分代碼如下:package util。import 。import 。import 。public class HibernateUtils { private static Configuration conf。 private static ThreadLocalSession tl = new ThreadLocalSession()。 private static SessionFactory factory。 static { conf = new Configuration()。 ()。 factory = ()。 } public static Session getSession() { Session session = null。 if(()==null){ session = ()。 (session)。 }else{ session = ()。 } return session。 } public static SessionFactory getSessionFactory() { return factory。 } public static void closeSession(Se