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${item.product.pic}”>
这样就得到下了),该页面吗足以管货参加购物车(并跻身购物车页面)。

 

购物车页面:

 MyBatis 1

拖欠页面显示已加入购物车外之货,并且可变动宠物数量的值或删除该宠物,然后点击Update
Cart按钮,合计和总计会计算起相应的值。

这时虽然Orders表里已经发出同样笔数,但是她的orderdate字段为空,表示并未结账。

直至点击下面的按钮表示提交订单,orderdate字段才会加上当前时,表示都结账并记下时时空。

然后页面返回到正进入铺时之宠物十分分类页面

 

最后附上该型之源码:

 https://github.com/chenzhida666/PetStore

网站地图xml地图