网上购物订单数据库系统._第1页
网上购物订单数据库系统._第2页
网上购物订单数据库系统._第3页
网上购物订单数据库系统._第4页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、网上购物订单数据库系统班级: xxxxx姓名: xxxxx目录.11.1.2.22.1.32.2.32.3.32.4.42.5.52.5.1.52.5.2.5.53.1.53.2.63.3.73.4.73.5E-R .83.6.10.104.1 E-R104.2 104.312121423一、概述11.1 开发背景随着网络技术的日益成熟,网络购物已经成为引领潮流的购物方式,尤其是在一些出门购物并不是十分便利的地区,网上购物的优势更是体现的淋漓尽致。与此同时,网上购物也给商家带来了巨大的利润, 因为免除了一些不必要的费用,在收益的获得上也显得更为直接,例如在今年的“光棍节”期间,淘宝的成交额将近

2、 200 亿,可见,网上购物已成为主流。 因而一个好的订单数据库管理系统成为了必要,在管理好用户数据的同时,也提高了订单处理的效率。网上购物系统的主要内容是, 一方面让销售商把商品发布于网络, 一方面让消费者通过网络来完成商品的交易。 系统总体分成前台和后台两大模块, 前台是用户模块,后台是管理员模块。 实现的功能, 首先系统向用户列出网站的商品信息。其次当顾客登录网上购物系统后, 为每个用户分配一个购物车, 用户选择商品后,商品会被放入购物车。再次,用户确认购物车信息,点击提交生成订单。最后,管理员对订单进行处理,即完成一次商品交易。网上购物是一种具有交互功能的商业信息系统。 它向用户提供静

3、态和动态两类信息资源。 所谓静态信息是指那些经常变动或更新的资源, 如公司简介、 管理规范和公司制度等等; 动态信息是指随时变化的信息, 如商品报价, 会议安排和培训信息等。网上购物系统具有强大的交互功能, 可使商家和用户方便的传递信息,完成电子贸易或 EDI 交易。这种全新的交易防护四实现了公司将文档与资金的无纸化交换。二、需求分析22.1 需求框架分析在我们的订单数据库系统中,采用了三层架构设计模式。三层架构是基于模块化程序设计的思想,为实现分解应用程序的需求,而逐渐形成的一种标准模式的模块划分方法。此模型将应用程序划分为: 用户界面层、 业务逻辑层、数据访问层三个层次。1、用户界面层:负

4、责处理用户的输入和向用户输出,但并不负责解释其含义。有时候出于对效率的考虑, 这一层可能会在向上传输用户输入之前进行合法性验证。2、业务逻辑层:这一层是用户界面层与数据访问层的纽带,它根据用户界面层传来的数据进行相应的业务逻辑操作并把结果返回给前端界面显示。3、数据访问层:负责实际的数据存储和检索,它建立实际的数据库连接,根据用户的请求执行检索或更新数据库操作。2.2 功能需求订单数据库系统共有5 个页面,基本流程为:1、 会员通过“会员登录页面”登录成功后进入“购物列表界面”。2、 会员在此可以选购;3、 选购完毕后进入“购物车清单页面”,查看购物信息。此处可修改信息。4、 确认购物车信息后

5、进入 “订单信息页面” ,会员填写详细信息并提交订单。5、 订单成功提交后进入“订单详情页面”,至此购物流程结束。2.3 系统功能清单3前台模块功能后台模块功能商品信息展示订单管理会员注册商品管理会员登陆会员管理会员信息修改系统管理购物车管理表 2-1系统功能清单2.4 数据流图图 2-1数据流图42.5 数据字典2.5.1数据流的描述( 1)会员编号数据项定义表 2-2 会员编号数据项定义数据项定义数据项编号: 201101有关编码的说明:数据项名称:会员编号XXXXX简介:本商城会员编号会员类别编号类型:电器实例: A00012.5.2处理逻辑的描述( 1)判断是否已结算表 2-4 判断是

6、否已结算判断是否已结算处理逻辑编号: P003处理逻辑名称:判断是否已结算简述:判断是否已结算输入的数据流:会员名、商品条形码、总额处理描述:根据会员名和商品条形码、 总额,将对应的书籍交易状态更改为已付款等待发货输出的数据流: D003处理频率: 100 次/ 天三、概念模型设计3.1 系统模块划分1、连接数据库模块:使用JDBC 访问 ORACLE 数据库,实现对数据库的操作2、购物车及后台处理模块:会员将购买的商品加入购物车后,将数据插入数据库保存,以便后台管理员确定信息和发货以及会员查看记录53、验证登陆模块:根据输入的用户名和密码验证是否正确4、商品展示模块:通过访问数据库展示商品信

7、息5、商品详细信息模块:显示商品的详细信息3.1.2 后台模块详细功能描述 :(1) 管理员信息管理:登录;添加新管理员、删除管理员:修改密码;管理员日志(记录管理员的每个操作,由超级管理员进行查询)。(2) 商品信息管理:添加、删除商品类别;添加、修改、删除商品信息。(3) 用户信息管理:查询用户信息、修改账户金额。(4) 订单管理:管理订单是否确认,是否发货,是否付款,是否归档。并且对相应信息进行查询(支持多参数查询)。3.2 系统功能模块结构图图 3-2 系统功能模块结构图63.3会员实体图会员 ID会员会员名会员密码图 3-3会员实体图3.4商品实体图单价条形码商品商品名数量图片地址会

8、员注册时间注册时间联系方式厂商上传时间物品类型图 3-4商品实体图73.5系统 E-R 图3.5.1分 E-R 图83.5.2总 E-R 图图 3-5 系统 E-R 图93.6管理员后台处理流程图用户登陆判断是否为管理员否非法登陆是会员管理商品信息管理订单管理查修删修删添查订看改除改除加看单会信会商商商订处员息员品品品单理信息图 3-6 管理员后台处理流程图四、逻辑模型设计4.1E-R 图向关系模型转化管理员(管理员编号、用户名、密码)会员( ID、昵称、密码、姓名、地址、E-mail 、QQ、联系方式)购物车(编号、用户名、商品名、数量、总价格、创建时间)订单(订单号、创建时间、用户名、姓名

9、、地址、联系方式、商品名、商品编号、数量、总价、单价)商品(商品编号、商品名、单价、厂商、生产日期、商品介绍)4.2 各个数据库表设计如下:表 1用户信息表数据项编号数据项名别名简述字段名类型取 值 范称围I1用户编号用户 ID用户代号UserChar4-20I2注册日期日期注册时间RtimeDateI3用户名用户昵称用户昵称UnameChar4-2010I4用户密码密码用户登陆密passwdChar6-18码I5用户地址地址用户地址addressCharI6用户姓名真实姓名用户姓名RnameChar4-10I7用户 QQQQ联系方式QQChar5-15I8E-mail邮箱联系方式mailCh

10、ar表 2商品信息表数据项编号数据项名称别名简述字段名取 值 范类型围I1商品编号条形码IsbnIsbnCharI2上传时间日期上架时间Upload_DatetimeI3商品名品名名称Shopnam ChareI4厂商厂商厂商FromCharI5单价价格商品单价PriceIntI6库存数量库存库存量StorecoIntuntI7商品简介简介简介ContentChar表 3购物车信息表数据项编号数据项名别名简述字段名取值称类型范围I1订单编号订单号订单代号OrderIdCharI2订单日期日期下订单时间StimeDateI3用户编号用 户 编购买者代号UserIdChar码I4用户名昵称购买者用

11、户UnameChar名I5用户地址地址送货地址addressCharI6用户姓名真 实 姓收货人姓名RnameChar名I7商品编号商 品 编商品代码IsbnChar码I8商品名称商品名商品名称Shopnam Char11eI9商品数量商品数购买数量countInt0-9999购买商品价0-999I10商品价格价格priceInt9格I11交易状态状态商品交易状ConditiInt态on其中交易状态中设定:0-等待付款1-已付款等待发货2-已发货等待签收3-交易完成4-交易关闭4.3 关系模式的优化对关系模式进行规范化处理,对关系模式进行评价与修正。五、物理设计5.1 聚簇设计该订单管理系统可

12、建立以下聚簇:OderId(订单编号 )Isbn(商品编号 )User(用户编号 )Uname(用户名 )这几个聚簇设计是因为这几张表都是实体表, 且聚簇中的属性都是主键或是外键,被访问的概率很高, 而其他表或者这些表上的其他属性被访问的概率就相对较低。5.2 索引设计索引就是表中数据和相应存储位置的列表,使用索引可以大大减少数据的查询时间。对于一个确定的关系,通常在下列情况下可以考虑建立索引。12( 1) 在主键属性列和外键属性列上通常都可以分别建立索引,不仅有助于唯一性检查和完整性检查,而且可以加快连接查询的速度。( 2) 以查询为主的关系可建立尽可能多的索引。( 3) 对等值连接,但满足

13、条件的元组较少的查询可以考虑建立索引。( 4) 如果查询可以从索引直接得到结果而不必访问关系,则对此种查询可以建立索引。该数据库管理系统可建立以下索引:OderId( 订单编号 )Isbn( 商品编号 )User( 用户编号 )Uname(用户名 )Shopname(商品名)Rname(用户姓名)5.3 分区设计与否涉及到数据库文件和日志文件的分区问题。磁盘分区设计的一般原则:(1)减少访问冲突,提高I/O 并发性。多个事物并发访问同一磁盘时,会产生磁盘访问冲突而导致效率低下,如果事务访问数据均能分布于不同磁盘上,则I/O 可并发执行,从而提高数据库访问速度。(2)分散热点数据,均衡I/O 负

14、担。在数据库中数据访问的频率是不均匀的,那些经常被访问的数据成为热点数据,此类数据宜分散存在于不同的磁盘上,以均衡各个磁盘的负荷,充分发挥多磁盘的并行操作的优势。( 3) 保证关键数据快速访问,缓解系统瓶颈。在数据库中有些数据如数据字典等的访问频率很高,为保证对它的访问不直接影响整个系统的效率,可以将其存放在某一固定磁盘上,以保证其快速访问。由以上原则可知,只有在管理程序较大且有大量用户同时访问时才需要进行分区设计,因此,本管理系统不需要进行分区设计。13六、数据库实施6.1 基本表的建立1、用户信息表createtableyh(UserIDchar( 20 ),Rtimedate,Uname

15、char( 20 ),Rnamechar( 10 ),passwdchar( 18 ),addresschar( 50 ),QQ char( 15 ),emailchar( 50 ),PRIMARYkey( UserID);2、商品信息表Createtablesp(Isbnchar( 50 ),Uploadtimedate,Shopnamechar( 30 ),Fromechar( 50 ),Priceint,Storecountint,Contentchar( 50 ),Primarykey( Isbn);143、订单信息表Createtablegw(OrderIdChar( 50),Sti

16、medate,UserIDChar (20 ),UnameChar ( 20 ),addressChar( 50),RnameChar ( 10 ),Isbn Char( 50),ShopnameChar ( 30 ),Countint,Priceint,Conditionint,Primarykey( OrderId),Foreignkey( UserID) referencesyh ( UserID ),Foreignkey( Isbn )referencessp ( Isbn );6.2 建立视图Createviewgw_ 用户AsSelectgw . UserID , gw. Unam

17、e , gw. Rname , yh . email , gw. address , sp . Isbn , sp . Shopname , s p . PriceFromgw, yh , sp15Wheregw . UserID= yh . UserIDandgw. Uname = yh . Unameandgw. Rname = yh . Rnameandgw. address= yh . addressandgw. Isbn= sp . Isbnandgw. Shopname = sp . Shopnameandgw. price= sp . price;6.3 建立索引Createun

18、iqueindexyonghuon yh ( UserID);Createuniqueindexshangpon sp ( Isbn );Createuniqueindexgouwuon gw ( OrderId);6.4 建立触发器当删除 sp 中的某一商品时, gw中的相应商品也应删除createtriggerdel_商品ON gwfordeleteasdeleteIsbnwheresp . Isbn=( selectIsbnfromdeleted)6.5建立 java 程序与数据库的关联Java 源码: import java.awt.*;import java.awt.event.*;

19、import javax.swing.*;import javax.swing.event.*;import java.sql.*;class Loading16private JFrame Loading_Frame;private JButton Loading_Button;private JTextField Loading_Name;private JButton Loading_Cancel;private JPasswordField Loading_Key;private JLabel Loading_lb1;private JLabel Loading_lb2;/privat

20、e JDialog Loading_dia;/*public static Resultdosqlserch(String s)/*rs.next();/指向第一个数据/ 可以操作, rs.getString( 字段名 ) 来获得属性;先关闭 rs.close();依次是 st.close();最后是 conn.close();*/*public static void closeConnection()/看来不能这样风装啊 ;17rs.close();st.close();con.close;*/Loading()int textWidth=16;int length;Loading_Fra

21、me = new JFrame("Loading!");Loading_Frame.setResizable(false);Loading_Button = new JButton("sure");Loading_Button.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e)int flag=0;String name = Loading_Name.getText();String key1 = Loading_Key.getText();/

22、Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");/ 打开 jdbc 驱动String url ="jdbc:sqlserver:/localhost:1433;databaseName=dd;"String user = "la"String key = "123"18Connection con;Statement st;ResultSet rs;Boolean flag1;Boolean flag2;trycon = DriverMan

23、ager.getConnection(url,user,key);/获取连接对象st = con.createStatement();/rs = st.executeQuery("select * from yh ");/rs 即 sql 查询后得到的结果; rs 此时游标指向为空,System.out.println("在账户输入框中您输入的是:"+name);/ 输出 TextField 中输入的数 while(rs.next()String x = rs.getString("userid"); String y = rs.ge

24、tString("passwd");System.out.println("数据库账户表中已有的帐户 "+x);System.out.println("该帐户的密码是 "+y);catch (SQLException f)System.out.println("catch出错 "););19Loading_Cancel = new JButton("Cancel");/Loading_Cancel.addActionListener();Loading_Name = new JTextField( textWidth);/长度 50 的账户名输入框,添加文档监视器,可以实现判断输入文本的正确,与文本框是否改变内容/Loading_Name.getDocument().addDocumentListener();Loading_Name.setEditable(true);Loading_Key = new JPasswordField(textWidth);/密码输入框,与账户输入框同等长度;Loading_lb1 = new JLabel("账户 ");Loading_lb2 = new JLabel("

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论