网上超市购物车数据库设计
网上超市购物车数据库设计

网上超市购物车数据库设计1.1. 购物车常见实现方式购物车是任何一个电商项目都会使用到的功能,面试的时候也经常问到,传统的做法是使用关系型数据库,比如mysql,建立一个cat 购物车表,把相关的购物车产品信息都放到数据库里面。
CREATE TABLE goods_shopcar (id int(4) NOT NULL ,uid int(10) NULL ,goods_id int(10) NULL ,number int(10) NULL ,status tinyint(4) NULL ,create_time int(10) NULL ,update_time int(10) NULL ,PRIMARY KEY (id));这样的设计在功能完全没问题,但在实际使用中,由于购物车的数据量太大,而且修改频繁,会导致数据库的压力增加,所以在正式项目开发中,一般不会直接使用关系型数据库来存储购物车信息。
既然不用关系型数据库,但就从非关系型数据库里面做选择了,很多的架构师会选择使用mongodb存购物车的数据,这也完全可以,mongodb有非常丰富的查询API,性能也比传统关系型数据库要好,使用mongodb确实是个不错的选择。
但比起使用mongodb,有部分公司也会使用redis来存放购物车的信息,比起mongdb的性能,redis的性能要来得更好。
在这就来谈论下使用redis来完成购物车得思路。
1.2. 开启持久化购物车的数据,既然不存在关系型数据库中,使用redis存储也不能让数据丢失,那redis必须开启持久化,这样哪怕redis重启数据也不至于丢失。
Redis有两种持久化机制,一种叫rdb,一种叫aof。
rdb也叫镜像文件,存放的是某个时刻redis内存数据的一个镜像aof就是append only file的简写,里面存放的是日志文件,准确的来说是存放RESP的指令日志,这里RESP指令并不是这次的重点,这里不做讨论。
UML课程设计--网上购物系统

《面向对象分析与设计》课程设计专业计算机科学与技术班级计算机08-1学号姓名指导教师完成时间2011-6-10成绩目录二设计目的 (3)1.需求分析 (3)系统功能分析 (3)三设计要求 (4) (4) (5) (7).................................................................................9........................................................................ 10 四用UML对系统建模 (12)1.用例图(用例建模)……………………………………………………12前台用户用例图及其文档 (12)后台管理员用例图及其文档 (14)2.系统类图 (16)3.顺序图 (17)4.构造活动图 (20)5.构造状态机图 (29)6.构件图 (33)7.部署图 (33)五使用说明书 (34)六工作总结 (39)一、设计题目:网上购物系统设计二、设计目的需求分析在线商城系统主要是针对中小型商城,购物系统管理员将商品信息整理归类发布到网上,用户登录该网站后,首先要注册为会员才能购买商品,提交订单给购物系统管理员,并同时将费用通过电汇或邮寄的方式交付到商城管理员处。
购物系统管理员在收到付款后,发货给购物者,并同时更新网上有关于该订单的付款状态,从而完成一次交易。
●只允许系统规定的购物系统管理员来添加和修改商品信息;购物系统管理员可以查看该系统的所有注册用户信息,可以修改某一个注册用户的基本信息,也可以删除某个用户;购物系统管理员可以查看该系统的所有订单,可以删除订单,也可以修改订单的付款状态、发货状态。
●任何一个网络用户都可以注册称为该系统的固定用户,注册时需要填写基本注册信息,还可以修改个人的基本信息。
●只有注册用户才能登录此系统,购买商品。
购买商品时可以任意选购商品,任意填写购买数量,可以修改已选择商品的购买数量,可以删除已选择的某一种商品,可以取消购买,可以提交购买下达订单确认一次购买成功。
java第一次作业

Java第一次作业姓名:黄文专业班级:计算机科学与技术八班学号:3110006191基于数据库的购物车JavaBean及其应用购物车是电子商务系统中常用的程序之一,就像一台虚拟的超市购物车,可以放入商品也可以拿出商品,本次实验以一个网上书店为例,设计购物车网上小系统。
设计思路:设计过程:1)、数据库编程1、创建表格create table Goods(Goods_id bigint NOT NULL IDENTITY(1,1) PRIMARY KEY,Goods_name varchar(40) NOT NULL,Goods_price money NOT NULL)2、插入数据insert2)JavaBean编程1、buyCar代码//购书车系统package buy;import java.util.*;import java.io.*;public class buyCar implements Serializable{Hashtable myGoods = new Hashtable();public void buyCar(){//构造函数}public void addGoods(String Goods_id, int Goods_Count){//把商品加入购书车if(myGoods.containsKey(Goods_id))//判断添加的商品的ID号在不在购书车中{//购书车中存在此商品则累计个数int Temp_Count = ((Integer)myGoods.get(Goods_id)).intValue();Temp_Count = Temp_Count + Goods_Count;myGoods.put(Goods_id, new Integer(Temp_Count));}else{//购书车中不存在此商品myGoods.put(Goods_id, new Integer(Goods_Count));}}//把商品从购书车中拿出来public boolean minusGoods(String Goods_id, int Goods_Count){//购书车中此商品则减少个数if(myGoods.containsKey(Goods_id)){int temp_Count = ((Integer)myGoods.get(Goods_id)).intValue();temp_Count = temp_Count - Goods_Count;if(temp_Count <= 0)//商品的数目小于0{deleteGoods(Goods_id);}else//购书车中还存在商品{myGoods.put(Goods_id, new Integer(temp_Count));}return true;}else{//购书车中不存在此商品return false;}}//得到购书车中的所以商品public Hashtable listMyGoods(){return myGoods;}//从购书车中删除一件商品public boolean deleteGoods(String Goods_id){if(myGoods.remove(Goods_id) == null){return false;}else{return true;}}}3)JSP编程1、buyBook1.jsp代码<%@page language="java"contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@page import = "java.sql.*"%><jsp:useBean id = "buycar"class = "buy.buyCar"scope = "session"> </jsp:useBean><html><head><meta http-equiv="Content-Type"content="text/html; charset=utf-8"> <title>购书中心</title><style type="text/css"media="screen">@import url(./CSS/typle1.css);</style></head><body class="body"><h1>黄文购书中心,欢迎你!</h1>我要<a href = "buyBook2.jsp">查看购书车</a><br><%//数据库的创建Connection con = null;Statement sql = null;ResultSet rs = null;try{Class.forName("com.mysql.jdbc.Driver"); //加载MYSQL JDBC驱动程序//Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");out.println("Welcome you to the shopping center!");System.out.println("Success loading Mysql Driver!");}catch(ClassNotFoundException e){out.print("类找不到");//out.println("Success loading Mysql Driver!");}try{con =DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123" );//连接URL为 jdbc:mysql//服务器地址/数据库名,后面的2个参数分别是登陆用户名和密码sql = con.createStatement();//列出要买的书rs = sql.executeQuery("select * from Goods");out.print("<Table Border >");out.print("<TR><td colspan=4 align=center>网上商场书店的书有:</td></TR>");out.print("<TR>");out.print("<td width=40>"+"序号");out.print("<td width=400>"+"书名");out.print("<td width=100>"+"价格");out.print("<td width=80>"+"购买吗?");out.print("</TR>");while(rs.next()){out.print("<TR>");out.print("<td>"+rs.getLong(1)+"</td>");out.print("<td>"+rs.getString(2)+"</td>");out.print("<td>"+rs.getString(3)+"</td>");out.print("<td>");out.print("<a href='buyBook2.jsp?Goods_id="+rs.getLong(1)+"'>我要买</a></td>");//<a href='buyBook2.jsp?Goods_id="+rs.getLong(1)+"'>我要买</a>out.print("</TR>");}out.print("</Table>");con.close();}catch(SQLException e1){out.print("SQL异常!");}%></body></html>2、buyBook2.jsp代码<%@page language="java"contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@page import = "java.util.*"%><%@page import = "java.sql.*"%><%@page import = "buy.*"%><jsp:useBean id = "buycar"class = "buy.buyCar"scope = "session"></jsp:useBean><html><head><meta http-equiv="Content-Type"content="text/html; charset=utf-8"><title>购物车</title><h2>欢迎你购物 :)</h2><style type="text/css"media="screen">@import url(./CSS/typle1.css);</style></head><body class="body">我要<a href = "buyBook1.jsp">继续购买</a><br><%//数据库的创建Connection con = null;Statement sql = null;ResultSet rs = null;try{Class.forName("com.mysql.jdbc.Driver"); //加载MYSQL JDBC驱动程序}catch(ClassNotFoundException e){out.print("类找不到");}try{con =DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123" );sql = con.createStatement();//列出要买的书if(request.getParameter("Goods_id") == null){//如果没有要购买书,只是查看购物车中的商品}else{int Goods_id =Integer.parseInt(request.getParameter("Goods_id"));out.print("<Table Border>");out.print("<TR><td colspan=4 align=center>你要买的书是:</td></TR>");out.print("<TR>");out.print("<td width=40>"+"序号");out.print("<td width=400>"+"书名");out.print("<td width=80>"+"单价");out.print("<td width=80>"+"本数");out.print("</TR>");out.print("<TR>");out.print("<TD>"+Goods_id + "</TD>");rs = sql.executeQuery("select * from Goods where Goods_id=" + Goods_id);rs.next();out.print("<TD>"+rs.getString("Goods_name") + "</TD>");out.print("<TD>"+rs.getString("Goods_price") + "</TD>");out.print("<form action=addGoods.jsp method=post>");out.print("<TD>"+"<input type=input name=book_countsize=6>");out.print("<input type=hidden name=Goods_idvalue="+Goods_id+">");out.print("<input type=submit value=提交></TD></from>");out.print("</TR>");out.print("</Table>");}//列出已放入购物车的书double all_price = 0;//总价、out.print("<Table Border>");out.print("<TR><td colspan=7 align=center>你的购物车的书有:</td></TR>");out.print("<TR>");out.print("<Td width=40 >"+"序号");out.print("<Td width=400 >"+"书名");out.print("<Td width=40>"+"数目");out.print("<Td width=40>"+"单价");out.print("<Td width=80>"+"总价");out.print("<Td width=120>"+"删除");out.print("<Td width=120>"+"减少");out.print("</TR>");Hashtable list = buycar.listMyGoods();Enumeration enum1 = list.keys();while(enum1.hasMoreElements()){String goods = (String)enum1.nextElement();byte b[] = goods.getBytes("utf-8");goods = new String(b);out.print("<TR>");out.print("<td>"+goods+"</td>");rs = sql.executeQuery("select * from Goods where Goods_id=" + goods);rs.next();out.print("<TD >"+rs.getString("Goods_name")+"</TD>");out.print("<TD >"+list.get(goods)+"</TD>");out.print("<TD >"+rs.getFloat("Goods_price")+"</TD>");out.print("<TD >"+rs.getFloat("Goods_price")*((Integer)list.get(goods)).int Value()+"</TD>");all_price=all_price+rs.getFloat("Goods_price")*((Integer)list.get(goods)).i ntValue();out.print("<TD ><ahref='deleteGoods.jsp?Goods_id="+goods+"'>从购物车中去除</a>"+"</TD>");out.print("<form action=minusGoods.jsp method=post>");out.print("<TD >"+"<input type=input name=book_countsize=6>");out.print("<input type=hidden name=Goods_idvalue="+goods+">");out.print("<input type=submit value=提交></TD></form>");out.print("</TR>") ;}out.print("<TR>");out.print("<td colspan=4 align=center>"+"总价为:"+"</TD>");out.print("<Td>"+all_price+"</TD><Td> </TD><Td> </TD>");out.print("</TR>");out.print("</Table>");con.close();}catch(Exception e1){out.print("SQL异常!");}%></body></html>3、addGoods.jsp代码<%@page language="java"contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%-- 调用JavaBean --%><jsp:useBean id="buycar"class="buy.buyCar"scope="session"></jsp:useBean><html><head><meta http-equiv="Content-Type"content="text/html; charset=utf-8"> <title>加入购物车</title><style type="text/css"media="screen">@import url(./CSS/typle1.css);</style></head><body class="body"><h2>加入购物车</h2><%String Goods_id = request.getParameter("Goods_id");try{int Goods_Count =Integer.parseInt(request.getParameter("book_count"));buycar.addGoods(Goods_id, Goods_Count);out.print("成功放入购物车");}catch(Exception e)out.print("输入的数字不正确" + "<br>");}%>我要<a href = "buyBook1.jsp">继续购物</a><br>我要<a href = "buyBook2.jsp">查看购物车</a></body></html>4、deleteGoods.jsp代码<%@page language="java"contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@page import = "java.util.*"%><%@page import = "buy.buyCar"%><jsp:useBean id = "buycar"class = "buy.buyCar"scope = "session"> </jsp:useBean><html><head><meta http-equiv="Content-Type"content="text/html; charset=utf-8"> <title>删除商品</title><style type="text/css"media="screen">@import url(./CSS/typle1.css);</style></head><body class="body"><h2>删除商品?</h2><%String Goods_id = request.getParameter("Goods_id");try{if(buycar.deleteGoods(Goods_id)){out.print("成功删除购物车中的书本");}else{out.print("删除失败!");}}catch(Exception e){out.println("参数不正确!" + e +"<br>");%>我要<a href = "buyBook1.jsp">继续购买</a><br>我要<a href = "buyBook2.jsp">查看购物车</a></body></html>5、minusGoods.jsp代码<%@page language="java"contentType="text/html; charset=utf-8"pageEncoding="utf-8"%><%@page import = "java.util.*"%><%@page import = "buy.buyCar"%><jsp:useBean id = "buycar"class = "buy.buyCar"scope = "session"> </jsp:useBean><html><head><meta http-equiv="Content-Type"content="text/html; charset=utf-8"> <title>减少购物车数目</title><style type="text/css"media="screen">@import url(./CSS/typle1.css);</style></head><body class="body"><h2>减少购物车数目</h2><%String Goods_id = request.getParameter("Goods_id");try{int Goods_Count =Integer.parseInt(request.getParameter("book_count"));buycar.minusGoods(Goods_id, Goods_Count);out.print("成功从购物车取出书本!");}catch(Exception e){out.println("输入的数字不正确!");}%>我要<a href="buyBook1.jsp">继续购买</a><br>我要<a href="buyBook2.jsp">查看购物车</a></body></html>目录结构:测试结果:1、数据库操作:2、界面操作:解题心得:本次作业主要让我对JSP有些了解,同时也让我学习了MYSQL的一些基本的操作。
基于“互联网”的智能购物车交互服务系统设计

前沿与动态136 / INDUSTRIAL DESIGN 工业设计基于“互联网+”的智能购物车交互服务系统设计DESIGN OF INTELLIGENT SHOPPING CART INTERACTIVE SERVICE SYSTEM BASED ON “INTERNET +”东北石油大学机械科学与工程学院 王赛男 刘文庆(通讯作者) 孙原鹏流程便捷化的一个缩影,为打破传统超市购物流程的弊端,这款基于“互联网+”的智能购物车交互服务系统设计应运而生。
以超市为例,在购物车上搭载交互服务系统,每台购物车上的交互式操作设备将为消费者提供准确的产品位置、价格等信息,为用户提供便捷的导购、导航服务,配合货架的基站系统,推送和更新广告与商品信息;提供产品索引和导航系统,指引消费者轻松找到商品;提供定时充电服务[2]。
2 基于“互联网+”的智能购物车交互服务系统设计的作用传统超市购物体验与足不出户就能享受到全面消费体验的线上购物不同,依然受到诸如时间、天气、场所、人流量等因素的影响和限制。
由于传统消费模式的限制,消费者们往往在节假日或人流量较大的时间段里要遭受大排长队的痛苦,浪费了大量时间,对于超市的管理和经营水准也是一种考验[3]。
基于“互联网+”的智能购物车交互服务系统设计目的在于解放消费场所以及消费者面对大客流和复杂场所上的限制。
购物车搭载的位置信息记录系统会记录消费者的购物行为路径、在不同商品区域停留的时间、每次购物所用时间等准确信息,升级经营流程。
作为新时代的新生产物,交互系统能将各类消费场所中原来分散的、互相独立和各自为政的行政、监管、销售、督导等体系重新融合为一个信息化、智能化的有机整体,构建能够响应各种突发事件,具有较强感知能力、协调能力的新型消费场所和消费环境的平台[4]。
3智能购物车服务系统交互服务的具体设计3.1 设计思路超市购物车的智能化改良,只是传统销售模式智能化、销售流程便捷化的一个缩影。
网上商城设计(数据库设计-UML建模)

网上商城设计目录1 系统分析与设计 (2)1.1系统总体的功能需求 (2)1.2用户接口模块 (3)1.3管理员接口模块 (4)2 系统UML建模 (6)2.1系统用例图 (6)2.2系统的时序图和活动图 (9)3 数据库设计 (11)3.1数据库的R-R图 (11)3.2数据表设计 (12)1 系统分析与设计1.1系统总体的功能需求网上商城是个复杂的电子商务系统,它必须提供接口以供用户登陆并从中选购喜爱的商品,同时还提供系统的管理接口以供管理员和一般网站工作者处理客户订单并维护网站正常运行。
系统的总体功能框架如图1所示:图1 系统总体功能需求图(1)用户接口模块。
用户接口是网站用户使用商城系统的服务入口,所有在线用户都通过浏览器登陆网站,并进行一系列的查询,订购等操作。
用户接口模块包括用户信息维护、商品查询、订购商品和订单维护4个部分。
用户登陆后,用户的ID将会被保存在服务器的缓存(session)中,用户在系统中所做的操作都将被系统存储到数据库中,以供商家进行销售情况和销售走势分析。
(2)管理员接口模块。
这是系统提供给网站维护管理人员的接口。
管理员接口模块包括商品信息维护、内部员工信息维护、订单处理、销售情况查询和报表维护5部分。
网站的一般工作人员通常只有订单处理的权限,他们获得用户提交的订单,并根据库存情况来确定发货或者推迟发货。
网站管理员具有最高级的权限,可以处理客户的订单,可以浏览网站商品的销售情况,及时做出经营调整战略,降低经营风险。
(3)数据服务模块。
数据服务模块是系统正常运行的基础,它包括客户的查询订单的保存,网站工作人员的订单处理;销售情况的查询分析。
1.2用户接口模块用户接口模块包括下图2所示的几个方面。
(1)用户信息维护。
每个想在该系统中购物的用户都必须先注册,注册时的用户名是用户的唯一标识。
系统可以接受客户的个人信息,比如购物方面的喜好,经济能力等等。
系统的后台程序会自动记录每个用户在登陆网站后进行的所有操作,包括查询和订购信息,这种信息对于系统管理员是珍贵的数据,系统会根据用户的查询记录判断该用户的喜好及用户的经济情况。
Web应用程序设计案例教程第8章

教 学 导 航
章 章
(1) 培养学生的自主学习能力和知识应用能力 (2) 培养学生勤于思考、认真做事的良好作风 (3) 培养学生具有良好的职业道德和较强的工作责任心 (4) 培养学生理论联系实际的工作作风 购物车中数据的修改(DataGrid控件中的编辑按钮列的应用) 购物车中数据的修改(DataGrid控件中的编辑按钮列的应用) 理论实践一体化,教、学、做合一 4课时(含课堂实践) 项目:设计购物车模块 任务1:设计购物车页面 任务2:编辑DataGrid控件的按钮列 任务3:完成DataGrid控件中数据的修改 任务4:完成DataGrid控件中数据的删除 任务5:完成总金额的计算 创建项目ch8→添加现有模块文件→设计购物车页面→编辑DataGrid控件的按钮列→完成DataGrid控件中数据的编辑
atabase=网上书店 ; integrated security=SSPI"></add> ☺03 </appSettings>
6
8.1.3 在现有的项目中添加模块文件
将第4章所创建的模块文件Module1.vb添加到 本章所创建的项目ch8中。
7
8.1.4 设计购物车页面
1. 添加控件
☺ 打开Web窗体shopcar.aspx的设计视图,在该Web窗体中添加1个3行1列的表
第8章 购物车模块设计
我们到超市去购买物品,都会拿一个购物篮 (购物车)来临时盛装购买的物品。那么在现在 流行的购物网站上,盛装临时的物品使用“购 物车”。 本章将介绍购物网站上“购物车”的功能。
2
第8章 购物车模块设计
(1) 掌握购物车中购物数量的编辑 (2) 掌握购物车中购物数据的删除 (1) 利用DataGrid控件中的编辑按钮列完成对数据的修改 (2) 利用DataGrid控件中的删除按钮列完成对数据的删除
网上超市管理系统毕业设计

网上超市管理系统毕业设计网上超市管理系统目录第一章绪论......................................................... - 1 -1.1开发背景 (1)1.2开发运行环境 (1)................................................................ - 1 - ................................................................ - 2 -第二章功能需求..................................................... - 3 -2.1功能模块划分 (3)2.2功能模块描述 (3)................................................................ - 3 - ................................................................ - 3 -第三章业务流程设计................................................ - 5 -3.1系统功能模块 (5)3.2网站前台功能图 (6)3.3后台管理功能图 (6)第四章逻辑设计.................................................... - 7 - 4.1数据库表的设计.. (7)第五章系统实现....................................................- 13 -5.1首页(登录、注册、浏览商品) (13)5.2根据条件查询符合条件的相应商品 (14)5.3购物车的实现 (16)................................................................- 17 - ................................................................- 19 - 5.4订单的产生 . (21)5.5添加商品(后台界面) (23)第六章系统总结....................................................- 25 -6.1系统特点、优势 (25)6.2系统不足 (25)第一章绪论1.1开发背景随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以及计算机与网络技术为基础的信息系统正处以蓬勃发展的时期。
在线购物车系统的设计与实现毕业论文.doc

在线购物车系统的设计与实现毕业论文目录第一章绪论 (1)1.1课题背景 (1)1.2网上购物的发展状况 (1)1.3项目提出的意义 (2)1.4本课题主要研究内容 (2)1.5论文结构 (2)第二章系统所采用的技术 (4)2.1 MVC设计模式和B/S系统架构 (4)2.1.1 MVC设计模式 (4)2.1.2 B/S系统架构 (5)2.2 JavaScript技术 (5)2.3 JSP技术 (5)2.4 MySQL数据库技术 (6)2.5 通过JDBC对数据库进行访问 (7)2.6本章小结 (7)第三章系统需求分析 (8)3.1系统的可行性研究 (8)3.1.1社会可行性 (8)3.1.2 技术可行性 (8)3.2需求分析 (8)3.2.1 业务需求分析 (9)3.2.2 用户需求分析 (9)3.2.3 功能需求分析 (9)3.2.4 运行环境和开发工具 (11)3.3本章小结 (12)第四章系统设计 (13)4.1总体设计和详细设计概述 (13)4.2系统结构设计 (13)4.3功能模块设计 (14)4.3.1用户管理模块 (14)4.3.2商品信息管理模块 (15)4.3.3购物车模块 (15)4.3.4订单管理模块 (16)4.4类的设计 (17)4.5数据库设计 (18)4.5.1数据库的分析 (18)4.5.2数据库概念模型设计 (19)4.5.3数据逻辑结构设计 (20)4.5.4数据库基本表的设计 (21)4.6本章小结 (22)第五章系统实现 (23)5.1系统注册登录功能的实现 (23)5.1.1用户注册 (23)5.1.2用户登录 (25)5.2用户管理功能的实现 (26)5.3商品信息管理功能的实现 (29)5.4购物车功能的实现 (33)5.5订单管理功能的实现 (37)5.6本章小结 (38)第六章系统测试 (39)6.1系统测试原则 (39)6.2测试方法 (39)6.3本系统的测试 (40)6.4本章小结 (42)第七章总结与展望 (43)致谢 (44)参考文献 (45)第一章绪论随着互联网的快速发展,电子商务成为了主要的商业交易模式,网上购物是电子商务的一种基本形式,这个流行于二十一的购物方式已经被越来越多的人所接受1.1课题背景近年来,随着Internet的快速发展和普及化,使Internet成为报刊、电视、广播等传统媒体之后而兴起的一种新传媒介质,人们对于互联网技术的需求已不仅仅是浏览网站,收发电子邮件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网上超市购物车系统数据库设计说明书拟制人审核人_________________批准人______________________ 【2010年3月12日星期五】数据库设计说明书1.引言1.1编写目的自Internet出现以来,大量的信息通过它迅速传播,突破了原有的通信方式。
在网上,不仅可以迅速找到任何方面的相关内容,而且信息的传递也较以前快了许多。
2000年,全世界已拥有近10亿因特网用户,有一亿多台计算机互联,可以交换数据的网络超过了100万个,每年在网络上的交易次数超过10亿次。
电子商务正是由于这种信息的快速流动和资源的大量集成而悄然崛起,并以惊人的速度发展着。
提供高效的内容丰富的Web商业服务是一项连续不断的任务,并不是做好了几个网页放在那里就可以了。
所以,设计了这个网上超市购物车系统,以对电子商务有进一步的认识。
1.2背景a. 待开发软件系统的名称:网上超市购物车系统b. 本项目的任务提出者:石河子大学c. 本项目开发者:严凤,丛莉莉d. 本项目用户:网上购物人群1.3参考资料《软件开发这点儿事——软件开发工具手册》邵志东著《程序员指南丛书高级编程》但正刚著《网络应用系统开发与实例》吴明晖主编吴丹红编著2.外部设计2.1支持软件本数据库主要采用微软公司的成熟数据库系统SQL Server2000,提供了较为灵活操作简单的功能,可以为数据库管理员和系统开发人员提供很好的支持。
3.结构设计3.1概念结构设计本数据库将反映的现实世界中的实体、属性和它们之间的关系等的原始数据形式,包括各数据项、记录、系、文卷的标识符、定义、类型、度量单位和值域,商城首页:热门商品:购物清单:3.2 逻辑结构设计:3.3关系图3.3物理结构设计4.存储过程脚本:(通过商品名称查询商品图片,单价,商品描述,购买时间)if exists(select * from sysobjects where name='Products_list' and type='p')drop procedure Products_listgocreate PROCEDURE dbo.Products_list@spname char(50),@sptupian char(50) output,@danjia money output,@spmiaoshu char(250) output,@spshijian char(50) outputasselect @sptupian=ProductImage,@danjia=UnitCost,@spmiaoshu=Description,@spshijian=Datetimed from Productswhere ModelName=@spnamegodeclare @spname char(50),declare @sptupian char(50),declare @danjia money ,@spmiaoshu char(250),@spshijian char(50)set @spname='蓝宝石'exec Products_list @spname,@sptupian output,@danjia output,@spmiaoshu output,@spshijian outputselect @spname as 商品名称,@sptupian as 图片,@danjia as 单价,@spmiaoshu as 商品描述,@spshijian as 购买时间go(通过商品ID查询商品名称,商品数量,商品单价,商品描述,购物时间,购物车ID)if exists(select * from sysobjects where name='Shoppingcart_list' and type='p')drop procedure Shoppingcart_listgocreate PROCEDURE dbo.Shoppingcart_list@ProductID char(50),@spname char(50) output,@spshuliang char(50) output,@danjia money output,@spmiaoshu char(250) output,@spshijian char(50) output,@gouwuchengID char(50) outputas select @spname=ModelName, @spshuliang=Quantity,@danjia=UnitCost,@spmiaoshu=Description,@spshijian=ShoppingCart.Datetimed,@gouwuchengID=CartID fromProducts,ShoppingCartwhere ShoppingCart.ProductID=Products.ProductID and Products.ProductID=@ProductIDgodeclare @ProductID char(50),@spname char(50),@spshuliang char(50) ,@danjia money ,@spmiaoshu char(250),@spshijian char(50),@gouwuchengID char(50)set @ProductID='64'exec Shoppingcart_list @ProductID,@spname output,@spshuliang output,@danjia output,@spmiaoshu output,@spshijian output,@gouwuchengID outputselect @ProductID as 商品ID,@spname as 商品名称,@spshuliang as 商品数量,@danjia as 商品单价,@spmiaoshu as 商品描述,@spshijian as 购买时间,@gouwuchengID 购物车IDGo5.触发器脚本:修改表Products中的ProductID,则表ShoppingCart中的ProductID随之改变if exists (select * from sysobjects where name ='Product_ID' and type='tr')drop trigger Product_IDgocreate trigger Product_ID on Products for update asif update(ProductID)begindeclare @productID_new char(50),@productID_old char(50)select @productID_new=ProductID from insertedselect @ProductID_old=ProductID from deletedupdate ShoppingCart set ProductID=@productID_newwhere ProductID=@productID_oldendgoupdate Products set ProductID='99' where ProductID='63'goselect * from Productsselect * from ShoppingCart(当插入或删除一个商品ID时,如果ID在1—100操作成功,否则提示商品ID超出所存商品ID范围,无法找到您需要的商品!请核对后重新输入。
)if exists (select * from sysobjects where name ='Product' and type='tr')drop trigger Productgocreate trigger Product on Products for update,insertasdeclare @productID char(50)select @productID=ProductID from insertedif @productID>0 and @productID<=100beginprint'操作成功完成!'returnendprint'商品ID超出所存商品ID范围,无法找到您需要的商品!请核对后重新输入。
' rollback Transactiongoinsert into Products (ProductID,CategoryID,ModelNumber,ModelName,Datetimed,Clicks,Sales,Commend)values('78','12','3564N','微波炉','2002-05-13 11:29:00','47','3000','1')goinsert into Products (ProductID,CategoryID,ModelNumber,ModelName,Datetimed,Clicks,Sales,Commend)values('188','11','888N','空气加湿器','2002-05-13 11:29:00','20','450','1')goselect * from Productsgo6.视图脚本:SELECT dbo.Orders.ID, dbo.OrdersDetails.ID AS Expr1, dbo.OrdersDetails.OrderID, dbo.OrdersDetails.ProductID, dbo.OrdersDetails.QuantityFROM dbo.Orders INNER JOINdbo.OrdersDetails ON dbo.Orders.ID = dbo.OrdersDetails.IDSELECT dbo.ShoppingCart.ID, dbo.Products.ProductID, dbo.Products.CategoryID, dbo.Products.ModelNumber, dbo.Products.ModelNameFROM dbo.ShoppingCart INNER JOINdbo.Products ON dbo.ShoppingCart.ProductID = dbo.Products.ProductID7:数据库恢复与备份:数据库的完全备份backup database OnlineShopto disk ='f:\备份数据库\OnlineShop'with initgo数据库的恢复restore database OnlineShopfrom disk = 'f:\备份数据库\OnlineShop'with recoverygo数据库差异备份backup database OnlineShopto disk ='f:\备份数据库\OnlineShop'with initgo数据库的恢复restore database OnlineShopfrom disk = 'f:\备份数据库\OnlineShop' with norecoverygorestore database OnlineShopfrom disk = 'f:\备份数据库\OnlineShop' with file=2go。