Word版可编辑-客户订购登记系统课程设计精心整理.docx_第1页
Word版可编辑-客户订购登记系统课程设计精心整理.docx_第2页
Word版可编辑-客户订购登记系统课程设计精心整理.docx_第3页
Word版可编辑-客户订购登记系统课程设计精心整理.docx_第4页
Word版可编辑-客户订购登记系统课程设计精心整理.docx_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

网络数据库技术课 程 设 计题 目 客户订购登记系统 班 级 网络0904 学 号 310909050154 姓 名 袁建龙 指导老师 彭维平 2012年 12 月 22 日目 录一、概述31.1 课程设计的目的31.2 课程设计的内容31.3 课程设计的要求4二、需求分析52.1 系统需求52.2 数据字典7三、系统总体设计93.1系统总体设计思路93.2 概念模型设计103.2.1 局部E-R图103.2.2 全局E-R图143.3 逻辑结构设计143.4 数据库建立实施193.4.1 建立数据库193.4.2 建立关系表19四、系统实现25五、系统评价27六、课程设计心得、总结28参考文献:29一概述1.1课程设计的目的通过课程设计,使学生具备将数据库系统与现实世界密切、协调一致结合起来的能力,掌握数据库设计中的需求分析、概念设计、逻辑设计、物理设计的方法,并能够用具体的数据库和编程语言来解决实际的问题。此外还要求学生具备实验结果分析、总结及撰写技术报告的能力。1.2课程设计的内容 客户订购登记系统 现有一个公司希望为其客户订购行为建立一个数据库。 如果一个客户可以有一份或多份订单,每份订单可以订购一种或多种商品。每份订单有一个发票,可以通过多种方式来支付,例如支票,信用卡或者现金。处理这个客户订购登记的职工的名字要被记录下来。 部门工作人员负责整理订单并根据库存情况处理订单。如果订单上的产品在库存中有,就可以直接发货,发货方式也有多种;如果订单上的产品在库存中没有,就不需要登记或者订购其它产品。1.3课程设计的要求1、根据题目查找资料及调研,写出数据库系统的需求分析报告;2、根据需求分析,设计系统的功能结构,画出系统的功能结构图,设计的功能要全面、正确,能解决现实世界各类用户的实际需要;3、根据需求分析,确定所设计的系统涉及到的实体、各实体的属性以及各实体之间的联系,用E-R图完成系统的概念模型设计,设计的概念模型要能全面、真实的反应现实世界,能满足系统功能的需要;4、根据E-R图转换为DBMS支持的关系模型;5、根据逻辑模型、系统环境和用户需求,设计数据库的物理结构。6、采用B/S模式,使用Java、ASP、JSP、PHP或ASP.NET程序设计语言之一进行相应前台主要模块和菜单的设计,选择Mysql、Oracle或者SQL Server数据库作为后台服务器。7、设计一组数据库表的测试实例,对各项功能进行简单的测试并写出测试结果。二需求分析2.1系统需求客户订购登记数据流图 客户实体的描述属性有:客户编号,客户名,邮编,电话号,传真号,银行帐号。产品实体的描述属性有:产品编号,产品名,型号,规格,单价,重量。订单实体的描述属性有:订单编号,客户编号,订货日期,交货日期,发货方式编号,职工编号,执行状态。订单细节实体的描述属性有:订单编号,产品编号,订货数量。发票实体的描述属性有:发票编号,开票日期,付款日期,订单编号,客户编号,付款方式编号。发货实体的描述属性有:发货编号,订单编号,产品编号,数量,发货日期,发货方式编号,完成状态,职工编号。职工实体的描述属性有:职工编号,姓名,性别,出生年月,地址,办公电话,住宅电话,EMAIL,职务,职称。付款方式实体的描述属性有:付款方式编号,付款方式。 发货方式实体的描述属性有:发货方式编号,发货方式。2.2数据字典(一)客户表(二)产品表(三)订单表(四)订单细节表(五)发票表(六)发货表(七)职工信息表(八)付款方式表(九)发货方式表三系统总体设计3.1.系统总体设计思路3.2概念模型设计3.2.1局部E-R图 客户实体和订单实体通过提交订单发生联系。每个客户可以提交多份订单,而每份订单只对应一个客户。因此,客户实体和订单实体之间是一对多联系,如图所示。 产品实体和订单细节实体通过订购产品发生联系。每个订单细节可以订购一种产品,而每种产品可以被不同的订单订购。因此,产品实体和订单细节实体之间是一对多联系,如图所示。 订单细节实体是订单实体的组成部分,故必存在联系。一份订单可以订购多种产品,也就是可以有多个订单细节,而每个订单细节只对应一份订单。因此,订单实体和订单细节实体之间是一对多联系,如图所示。 职工实体通过处理订单和订单实体发生联系。每个职工可以处理多份订单,而每份订单只能由一个职工处理。因此,职工实体和订单实体之间是一对多联系,如图所示。 付款方式是发票的组成部分,故必存在联系。每张发票对应一种付款方式,而每种付款方式可以用于不同的发票中。因此,付款方式实体和发票实体之间是一对多联系,如图所示。 发货实体与订单细节实体通过发货打包发生联系。每个订单细节对应多次发货,而每次发货只对应一个订单细节。因此,发货实体和订单细节实体之间是一对多联系,如图所示。 发货方式是发货的组成部分,故必存在联系。每个发货对应一种发货方式,而每种发货方式可以用于不同的发货中。因此,发货方式实体和发货实体之间是一对多联系,如图所示订单实体和发票实体通过开具发票发生联系。每份订单开具一张发票,而每张发票也只对应一份订单。因此,订单实体和发票实体之间是一对一联系,如图所示。3.2.2全局E-R图3.3 逻辑结构设计客户(客户编号,客户名,邮编,电话号,传真号,银行帐号)主键:客户编号。候补键:电话号,传真号,银行帐号。函数依赖集F:客户编号客户名,邮编,电话号,传真号,银行帐号,电话号客户编号,邮编,传真号,银行帐号,传真号客户编号,客户名,邮编,电话号,银行帐号,银行帐号客户编号,客户名,邮编,电话号,传真号虽然,客户编号电话号,电话号传真号,但由于电话号客户编号也成立,所以,客户编号传真号不是传递函数依赖。 客户关系中不存在非主属性与候选键之间的部分与传递函数依赖,所以客户关系满足第3范式。 产品(产品编号,产品名,型号,规格,单价,重量)主键:产品编号。函数依赖集F:产品编号产品名,型号,规格,单价,重量。 产品关系不存在非主属性与候选键之间的部分与传递函数依赖,所以产品关系满足第3范式。 订单(订单编号,客户编号,订货日期,交货日期,发货方式编号,职工编号,执行状态)主键:订单编号。外键:客户编号,引用了客户关系中的客户编号; 发货方式编号,引用了发货方式关系中的发货方式编号; 职工编号,引用了职工关系中的职工编号。函数依赖集F:订单编号客户编号,订货日期,交货日期,发货方式编号,职工编号,执行状态。 订单关系中不存在非主属性与候选键之间的部分与传递函数依赖,所以订单关系满足第3范式。 订单细节(订单编号,产品编号,订货数量)主键:订单编号产品编号。函数依赖集F:订单编号,产品编号订货数量。 订单细节关系中不存在非主属性与候选键之间的部分与传递函数依赖,所以订单细节关系满足第3范式。发票(发票编号,开票日期,付款日期,订单编号,客户编号,付款方式编号)主键:发票编号。候选键:订单编号。外键:订单编号,引用了订单关系中的订单编号; 客户编号,引用了客户关系中的客户编号; 付款方式编号,引用了付款方式关系中的付款方式编号。函数依赖集F:发票编号开票日期,付款日期,订单编号,客户编号,付款方式编号,订单编号发票编号,开票日期,付款日期,客户编号,付款方式编号。 发票关系中不存在非主属性与候选键之间的部分与传递函数依赖,所以发票关系满足第3范式。发货(发货编号,数量,发货日期,订单编号,产品编号,发货方式编号,完成状态,职工编号)主键:发货编号。外键:订单编号,引用了订单关系中的订单编号; 产品编号,引用了产品关系中的产品编号; 发货方式编号,引用了发货方式关系中的发货方式编号。函数依赖集F:发货编号数量,发货日期,订单编号,产品编号,发货方式编号,完成状态,职工编号。 发货关系中不存在非主属性与候选键之间的部分与传递函数依赖,所以发货关系满足第3范式。 职工(职工编号,姓名,性别,出生年月,地址,办公电话,住宅电话,EMAIL,职务,职称)主键:职工编号。候选键:EMAIL。函数依赖集F:职工编号姓名,性别,出生年月,地址,办公电话,住宅电话,EMAIL,职务,职称,EMAIL职工编号,姓名,性别,出生年月,地址,办公电话,住宅电话,职务,职称。 职工关系中不存在非主属性与候选键之间的部分与传递函数依赖,所以职工关系满足第3范式。 付款方式(付款方式编号,付款方式)主键:付款方式编号。函数依赖集F:付款方式编号付款方式。 付款方式关系满足第3范式。发货方式(发货方式编号,发货方式)主键:发货方式编号。函数依赖集F:发货方式编号发货方式。 发货方式关系满足第3范式。 所有关系都满足较高的范式要求,故客户订购登记管理的数据库设计是合理的。3.4 数据库建立实施3.4.1 建立数据库CREATE DATABASE customer_db;USE customer_db;3.4.2 建立关系表建立账单表:CREATE TABLE t_bill ( bill_id int(11) NOT NULL AUTO_INCREMENT COMMENT 发票编号, raiseddate timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 开票日期, paydate timestamp NOT NULL DEFAULT 0000-00-00 00:00:00 COMMENT 付款日期, o_id int(11) NOT NULL COMMENT 订单编号, c_id int(11) NOT NULL COMMENT 客户编号, pay_id int(11) NOT NULL COMMENT 付款方式编号, PRIMARY KEY (bill_id), KEY fk_bill_order (o_id), KEY fk_bill_customer (c_id), KEY fk_bill_pay (pay_id), CONSTRAINT fk_bill_customer FOREIGN KEY (c_id) REFERENCES t_customer (id), CONSTRAINT fk_bill_order FOREIGN KEY (o_id) REFERENCES t_order (id), CONSTRAINT fk_bill_pay FOREIGN KEY (pay_id) REFERENCES t_pay (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立客户表:CREATE TABLE t_customer ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 客户编号, name varchar(20) NOT NULL COMMENT 姓名, zip varchar(50) NOT NULL COMMENT 邮编, tel varchar(20) NOT NULL COMMENT 电话, fax varchar(20) NOT NULL COMMENT 传真, bankno varchar(20) NOT NULL COMMENT 银行帐号, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立职工表:CREATE TABLE t_employee ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 职工编号, name varchar(20) NOT NULL COMMENT 姓名, sex varchar(20) NOT NULL COMMENT 性别, dob date NOT NULL COMMENT 出生日期, address varchar(50) NOT NULL COMMENT 地址, worktel varchar(20) NOT NULL COMMENT 办公电话, hometel varchar(20) NOT NULL COMMENT 住宅电话, email varchar(20) NOT NULL COMMENT 邮箱, position varchar(20) NOT NULL COMMENT 职位, title varchar(20) NOT NULL COMMENT 职称, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立订单表:CREATE TABLE t_order ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 订单编号, p_id int(11) NOT NULL COMMENT 客户编号哦, order_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 订货日期, jiao_date timestamp NOT NULL DEFAULT 0000-00-00 00:00:00 COMMENT 交货日期, sm_id int(11) NOT NULL COMMENT 发货方式编号, e_id int(11) NOT NULL COMMENT 职工编号, state varchar(50) NOT NULL COMMENT 执行状态, PRIMARY KEY (id), KEY fk_order_customer (p_id), KEY fk_order_shipmentmethod (sm_id), KEY fk_order_employee (e_id), CONSTRAINT fk_order_customer FOREIGN KEY (p_id) REFERENCES t_product (id), CONSTRAINT fk_order_employee FOREIGN KEY (e_id) REFERENCES t_employee (id), CONSTRAINT fk_order_shipmentmethod FOREIGN KEY (sm_id) REFERENCES t_shipmentmethod (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立订单细节表:CREATE TABLE t_order_details ( o_id int(11) NOT NULL COMMENT 订单号, p_id int(11) NOT NULL COMMENT 产品号, numer int(11) NOT NULL COMMENT 订货数量, PRIMARY KEY (o_id,p_id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立付款表:REATE TABLE t_pay ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 付款方式编号, method varchar(20) NOT NULL COMMENT 付款方式, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立产品表:CREATE TABLE t_product ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 产品编号, name varchar(20) NOT NULL COMMENT 产品名, moder varchar(20) NOT NULL COMMENT 型号, norm varchar(20) NOT NULL COMMENT 规格, price float NOT NULL COMMENT 单价, weight float NOT NULL COMMENT 重量, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立发货表:CREATE TABLE t_shipment ( shipment_id int(11) NOT NULL AUTO_INCREMENT COMMENT 发货编号, o_id int(11) NOT NULL COMMENT 订单号, p_id int(11) NOT NULL COMMENT 产品号, number int(11) NOT NULL COMMENT 数量, date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 发货日期, sm_id int(11) NOT NULL COMMENT 发货方式编号, state varchar(20) NOT NULL COMMENT 完成状态, e_id int(11) NOT NULL COMMENT 职工编号, PRIMARY KEY (shipment_id), KEY fk_shipment_order (o_id), KEY fk_shipment_product (p_id), KEY fk_shipment_shipmentmethod (sm_id), KEY fk_shipment_employee (e_id), CONSTRAINT fk_shipment_employee FOREIGN KEY (e_id) REFERENCES t_employee (id), CONSTRAINT fk_shipment_order FOREIGN KEY (o_id) REFERENCES t_order (id), CONSTRAINT fk_shipment_product FOREIGN KEY (p_id) REFERENCES t_product (id), CONSTRAINT fk_shipment_shipmentmethod FOREIGN KEY (sm_id) REFERENCES t_shipmentmethod (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;建立发货方式表:CREATE TABLE t_shipmentmethod ( id int(11) NOT NULL AUTO_INCREMENT COMMENT 发货方式编号, method varchar(20) NOT NULL COMMENT 发货方式, PRIMARY KEY (id) ENGINE=InnoDB DEFAULT CHARSET=utf8;四 系统实现1. 数据库实现:在使用mysql创建好数据库后,对数据库进行连接,在设置好数据源与JDBC的连接,就能使用数据库了。在此程序中,数据源设置为customer_db。数据库的连接:Class.forName(com.mysql.jdbc.Driver);Connection conn = DriverManager.getConnection(jdbc:mysql:/customer_db);2. 登陆界面:登陆时的验证:String name = request.getParameter(admin);String pwd = request.getParameter(pwd)AdminDao dao = new AdminDao();Admin admin = dao.findByNameAndPassword(name, pwd);if(admin!=null)if(admin.getName().equals(name)&admin.getPassword().equals(pwd)request.setAttribute(admin, admin);request.getRequestDispatcher(show.jsp).forward(request, response);elseresponse.sendRedire

温馨提示

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

评论

0/150

提交评论