PetStore項目總結


數據庫(MySQL):

 

account(用戶表;沒有外鍵),  profile(用戶側面信息表;有兩個外鍵:catid,username),

category(寵物總分類表--魚;沒有外鍵),  product(寵物小分類表--金魚;有一個外鍵:catid),

item(具體寵物分類--鳳尾龍睛;有一個外鍵:productid),  orders(訂單表;沒有外鍵),

cart(購物車表;有兩個外鍵:itemid,orderid; 主鍵:itemid 和 orderid作為聯合主鍵)

 

account (用戶表) 和 profile (用戶的輔助信息;側面信息) 是一對一關系。

//profile里有一個外鍵(username) 與 account里的主鍵(username)相對應。account沒有外鍵。

 

 category (寵物總分類表)  和 profile (用戶側面信息表)  是 多對多關系。//一類寵物可以有多個買家,買家也可以買多類寵物。

//profile里有一個外鍵(catid) 與 category 里的主鍵(catid)相對應。category 沒有外鍵。

 

 category (寵物總分類表)  和 product(寵物小分類)  是 一對多關系。//一類寵物有多個品種。

//product里有一個外鍵(catid) 與 category 里的主鍵(catid)相對應。category 沒有外鍵。

 

product(寵物小分類) 和 item(具體寵物分類) 是一對多關系。//一類品種下的一只只狗。

//item里有一個外鍵(productid) 與 product里的主鍵(productid)相對應。

 

cart(購物車) 和 item(具體寵物分類) 是 一對多關系。

//cart里有一個外鍵(itemid) 與 item里的主鍵(itemid)相對應。

 

cart(購物車) 和 orders(訂單表) 是 一對一關系。

//cart里有一個外鍵(orderid) 與 item里的主鍵(orderid)相對應。

 

用到的技術:

Spring + SpringMVC + MyBatis + Freemarker + MySQL

 

實現的功能:

登錄、注冊(Spring校驗)、查詢寵物(總分類、小分類、具體分類)、購物車

 

業務邏輯:

orders表里有一個orderdate字段,該字段為空表示沒有結賬。

cart表里itemid 和 orderid作為聯合主鍵:也就是說同一張表里不能有相同的寵物具體分類,如果想訂多個,用quantity字段控制(多次買合並,quantity+1)。

 

最開始是index頁(從control層跳轉過來的)

直接點進入商店 左上角顯示游客(session為空)

右上角登錄 登錄失敗顯示紅字 登錄成功跳轉到商店頁面 並顯示名字 

注冊:在下拉框(異步的)顯示所有寵物大分類.(Spring 校驗)。

 

進入商店后,顯示寵物大分類(category),點擊進入后顯示該大分類下的寵物小分類(product);

再點擊進入寵物小分類里是具體寵物分類(item):該頁面有寵物的簡單信息,可以點擊加入購物車直接加入購物車(並進入購物車頁面),也可以點擊寵物序號進入寵物詳細介紹頁面

寵物詳細介紹頁面:該頁面也是顯示item表里的數據,只不過信息更詳細,還有寵物的圖片(數據庫里存的是圖像名<#assign ppath=request.contextPath><img src="${ppath}/static/images/${item.product.pic}"> 這樣就取出來了),該頁面也可以把商品加入購物車(並進入購物車頁面)。

 

購物車頁面:

 

該頁面顯示已加入購物車內的商品,並且可以改變寵物數量的值或刪除該寵物,然后點擊Update Cart按鈕,合計和總計會計算出相應的值。

這時雖然Orders表里已經產生一筆數據,但是它的orderdate字段為空,表示沒有結賬。

直到點擊下面的按鈕表示提交訂單,orderdate字段才會添加當前時間,表示已結賬並記錄當前時間。

然后頁面返回到剛進入商店時的寵物大分類頁面

 

最后附上該項目的源碼:

 https://github.com/chenzhida666/PetStore


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM