订单生成系统.(数据库课程设计).docx_第1页
订单生成系统.(数据库课程设计).docx_第2页
订单生成系统.(数据库课程设计).docx_第3页
订单生成系统.(数据库课程设计).docx_第4页
订单生成系统.(数据库课程设计).docx_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

订单生成系统目录目录2第1章 系统概述和总体设计51.1 系统需求分析51.1.1 需求描述和系统边界51.1.2 业务需求51.1.3 功能需求及数据需求分析61.1.4 业务规则分析61.2 系统流程7第2章 数据库设计82.1数据库概念设计82.1.1 确定实体集及属性82.1.2 确定联系集及基本E-R图92.2 数据库结构设计102.2.1 会员关系模式102.2.2 职员关系模式102.2.3 管理员关系模式112.2.4 商品关系模式112.2.5 订单关系模式122.2.6 编辑关系模式122.3 数据库完整性设计132.3.1 会员表的创建132.3.2 职员表的创建132.3.3 管理员表的创建132.3.4 商品表的创建142.3.5 订单表的创建142.3.6 编辑表的创建142.4 数据库安全性设计152.4.1 创建管理员用户152.4.2 创建职员角色162.4.3 创建会员角色162.5 建立索引162.5.1 会员表的索引162.5.2 职员表的索引162.5.3 商品表的索引162.5.4 订单表的索引162.5.5 编辑表的索引16第3章 系统框架设计163.1模块163.1.1模块说明17第4章 职员和会员模块174.1 职员模块174.1.1商品信息管理子模块17插入商品信息17删除包含指定内容的商品信息17修改商品信息17查询按指定要求的商品信息18创建指定属性值商品的视图18创建存储过程18执行存储过程184.1.2 审核订单子模块18创建存储审核通过订单的数据库pass18在pass数据库中存储审核通过的订单的存储过程194.1.3编辑记录子模块194.2 会员模块204.2.1生成订单子模块204.2.2 查询订单子模块20按指定内容查询订单204.2.3 取消订单子模块20取消某一订单号的订单20第5章 管理员和注册模块205.1管理员模块205.1.1用户(职员和会员)信息管理子模块20增20删21改21查215.1.2维护数据库子模块22数据库的备份22数据库的还原22数据库的重组织和重构造24删除“备注”字段245.2 注册模块245.2.1 职员注册245.2.2 会员注册25第6章 心得体会25第7章 参考文献26第1章 系统概述和总体设计1.1 系统需求分析1.1.1 需求描述和系统边界在市场经济中,销售是企业动作的重要环节,为了更好地推动销售,不少企业建立分公司或代理制,通过公司或代理把产品推向最终用户。这些分公司或代理商大多分布在全国各地,甚至是在国外,远距离频繁的业务信息交流构成了这些企业业务活动的主要特点。这些信息传递和管理的方式不仅效率低,可靠性、安全性和保密性都无法满足需求,而且数据统计时间严重滞后,往往是当领导了解到企业的“产、销、存”环节出现问题时,就已经远离了问题出现的时间和地点。即便是没有分公司的企业,使用传统的手工方式管理也存在同样的问题。通过订单生成与管理系统,及时通过网络把决策信息传递给相关决策人,从而可以及时发现问题、解决问题,从而更好地把握机会,提高自己在市场竞争中的地位,增强企业的生命力。设计订单生成和管理系统正是为了适应这种形势,它已经刻不容缓了。本系统为订单管理系统,能够实现订单录入、确认、拣货、发货、出库、入库、库存查询、订单查询等功能。本系统分为主数据、订单管理、库存管理和查询统计四个部分。 主数据部分主要用于维护库存、产品、客户和供应商的基本信息,包括仓库、货位表、库存表、客户信息表、产品表、产品价格表、订单状态、供应商信息表、供应商报价表等模板。用户在开始使用系统之前,需要将主数据录入或者导入系统。1.1.2 业务需求业务需求分析是根据现实世界对象要求,描述应用的具体业务处理流程,并分析哪些业务是计算机可以完成的,而哪些业务是不能由计算机完成的。公司日常业务数据量巨大,其中订单信息是联系客户信息与商品信息的关键,这些信息需要大量的编排与整理,但是它们的分析收集过程全部依赖工作人员的手工操作,工作人员的绝大多数精力投入到浩繁的数据整理中,这样的情况不仅仅大大加剧了工作难度,而且无形中加大了信息处理的错误概率。本系统的建立能够将客户与商品的关系明显地联系起来,并且生成订单信息,使用它大大地简化了数据的录入、计算和修改的工作量,而且极大程度地提高了信息处理效率,因此,该系统的需求十分迫切,功能十分实用。在订单生成与管理系统的数据库中,一个客户可以有一份或多份订单,即它们是一对多的关系,每份订单也可以订购一种或多种商品。每份订单有一张发票,发票可以通过多种方式来支付购买款,如支票、信用卡或者现金。处理这个订购登记的职工的名字要被记录下来。部门工作人员负责整理订单并根据库存情况处理订单。如果库存中有订单上的产品,就可以直接发货。发货方式也有很多种。如果库存中没有订单上的产品,就不需要登记或者订购其他产品。经过仔细分析系统需求之后,企业订单系统要完成的主要功能如下: (1)进入系统之前需要身份验证,待用户名、密码,输入正确之后方可进入。 (2)企业可以对已存在的产品信息进行修改和删除,增加新的产品信息。 (3)对已存在的订单信息进行添加,修改和删除。 (4)企业可以更新对订单产生的方式。 (5)企业可以更新已有客户的信息并对客户信息进行分析。1.1.3 功能需求及数据需求分析功能需求分析是描述系统应提供的功能和服务。根据上述需求描述,订单生成系统的主要功能和数据需求包括:注册管理会员注册。会员注册时要求填写基本信息,包括姓名、登录密码、性别。出生年月、地址、邮政编码、电子邮箱、电话等信息。系统检查所有信息填写正确后提示会员注册成功,并返还会员编号。职员注册。工作人员以职员身份注册并填写信息,包括姓名、登录密码、性别、出生年月、住址、电话、电子邮箱等信息。系统检查所有信息正确后提示注册成功并返回职员编号。商品管理增加商品信息。当有新商品上架时,职员负责添加和发布商品信息。包括商品名称、商品编号、售价、商品简介等。商品信息查询。系统需要提供多种方便快捷方式对商品进行检索。如既可以输入关键词进行简单查询,也可以根据商品编号、售价、简介等单一或组合查询。商品信息更新及删除。商品信息发布后,职员可以随时更新和删除商品信息。选择商品会员登录后,将需订购的商品放入购物车并填写购买数量。购物车内的商品可以随意增加、删除和修改数量,并能即时统计购物车内的商品总价格。选择完成后,会员还需填写送货地址、支付方式等。确认填写的信息无误后,则提交生成订单。每张订单要求记录订单号(按时间顺序生成)、客户编号、生成订单日期、收货人、送货人、订单明细(包括商品名称、数量、价格)。订单管理订单查询。订单提交后,会员可随时查询订单的最新状态以及全部历史订单。订单取消及更新。订单未审核前,允许会员取消订单及更新订单信息。订单受理。订单生成后,职员对订单进行审核。如发现订单填写不正确则退回订单客户重新填写。如正确无误,则生成订单并安排配送。1.1.4 业务规则分析业务规则分析主要是分析数据之间的约束以及数据库约束。综合上述功能需求,通过进一步了解,订单生成系统业务规则如下:(1) 所有用户均可搜索商品信息,但只有注册会员才能在网上提交订单只有注册职员才能维护商品信息及受理订单。(2)每位会员由会员编号唯一标识,会员编号由系统按时间顺序生成。(3)每位职员由职员编号唯一标识,职员编号由系统按时间顺序生成。(4)商品编号是系统识别商品的唯一标识。系统需记录每种商品的当前存量,当库存量低于某一阈值时则通知补货。(5)选购的商品必须放入购物车后才能生成订单。(6)每一个订单用订单编号唯一标识。订单编号由系统按时间顺序生成后提交的订单具有更大的订单号。(7) 订单需记录当前状态,包括未审核,退回,已审核和已处理结束等态。(8) 同一订单可订购多种商品,且订购数量可以不同。因此,一个订单包括多个商品明细。订单中每种商品需记录其状态,包括未送货、已送货、已送到等。(9) 订单受理前允许会员删除所选商品,修改订购数量,配送信息等,甚至取消订单。但订单审核通过后,则不允许做任何修改。完成需求分析后,接下来的任务就是根据上述分析结果设计数据库的概念模型,即E-R模型,包括确定实体集、联系集及属性。1.2 系统流程系统具体的业务流程图如下: 图1 订单生成 图2 订单受理第2章 数据库设计2.1数据库概念设计 2.1.1 确定实体集及属性实体集是具有相同类型及相同性质(或属性)的实体集合。通常,一个实体对应一个事物,是名词。发现实体集的步骤可归纳为:(1) 找出需求分析中出现的具有一组属性的“名词”。(2) 分析这些“名词”信息是否需要存储。对于不需要存储的“名词”不必建模为实体集。(3) 分析这些“名词”是否依赖于其他对象存在。如果是,可考虑为联系或弱实体集。由上节分析可知,订单生成系统中出现的名词主要有:会员,职员,商品,订单等。显然,会员、职员、商品等都具有一组属性且部分属性能唯一标识每个实体,而且它们需要存储到数据库中供查询用,因此可直接建模为实体集。购物车用于临时存放购物信息,包括选购商品的商品名称、编号、订购数量、价格。订单提交成功后,购物车中的信息将全部存放到订单中去。当客户放弃订购不生成订单时,购物车中的信息不需要保留。由于购物车中的信息无需查询,故不必建模为实体集。订单是用于记录一次订购的全部信息。按上述规则由订单编号唯一标识不同订单,故订单可建模为一个实体集。但另一方面,订单又反映了会员与商品之间的一种“订购”联系,反映“谁什么时候订购了什么商品,订购了多少”等信息,它对会员和商品具有一定的“依赖”关系。图 1会员实体集的E-R图图 2职员实体集的E-R图图 3管理员实体集的E-R图图 4商品实体集E-R图2.1.2 确定联系集及基本E-R图确定了实体集后,接下来就是确定联系集。这是决定E-R图设计好坏的关键。通常,联系对应的概念为一种动作,即描述实体间的一种行为。因此,当发现两个或多个实体之间的某种行为需要记录时,就应该建立一个联系模型。确定联系集的一个重要任务是分析所建模联系集的映射基数,即参与联系的实体集中一个实体通过该联系集能同时与另一个实体集中多少个实体相联系。同实体集一样,联系集也可以有自己的描述属性。要注意的是,联系集已包含了所有参与该联系的实体集的主码属性,故在E-R 图中参与联系的实体集的主码属性不要作为联系集的描述属性画出。基于上节设计得到的实体集,确定联系集,并得到以下基本E-R图(省略部分实体的属性):图 5订单生成系统基本E-R图2.2 数据库结构设计根据订单生成系统基本E-R图可以得到6个关系模式:2.2.1 会员关系模式会员(会员号,会员名,性别,密码,邮箱,等级,享受的折扣,手机号,出生日期,住址)字段名数据类型(最大)长度允许为空主键描述memNumberint10否是会员号memNamevarchar10是会员名nicknamevarchar20是会员昵称sexchar2是会员性别memPasswordvarchar20否会员密码emailvarchar25是会员邮箱memLevelint2否会员等级discountint2否会员享受的折扣telephonechar11否会员手机号birthdaydatetime10是会员出生日期memAddressvarchar50否会员住址regTimedatetime20否注册时间IDcardvarchar18是会员身份证号表格 1会员关系模式属性的说明2.2.2 职员关系模式职员(职员号,职员名,性别,密码,邮箱,薪水,手机号,出生日期,住址)字段名数据类型(最大)长度允许为空主键描述empNumberint10否是职员号empNamevarchar20否职员名sexchar2是职员性别empPasswordvarchar20否职员密码emailvarchar25是职员邮箱salaryint10否职员薪水telephonechar11否职员手机号birthdaydatetime10是职员出生日期empAddressvarchar50是职员住址regTimedatetime20否注册时间IDcardvarchar18否职员身份证号表格 2职员关系模式属性的说明2.2.3 管理员关系模式管理员(管理号,管理名,性别,密码,邮箱,薪水,手机号,出生日期,住址)字段名数据类型(最大)长度允许为空主键描述manNumberint10否是管理号manNamevarchar20否管理名sexchar2是管理员性别manPasswordvarchar20否管理员密码emailvarchar25是管理员邮箱salaryint10否管理员薪水telephonechar11否管理员手机号birthdaydatetime10是管理员出生日期manAddressvarchar50否管理员住址IDcardvarchar18否管理员身份证号表格 3管理员关系模式属性的说明2.2.4 商品关系模式商品(商品号,商品名,单价,仓库编号,备注)字段名数据类型(最大)长度允许为空主键描述gooNumberint10否是商品号gooNamevarchar20否商品名pricefloat2否商品单价(元)stoNumberchar3否仓库编号gooQuantityint10否商品库存量remarkvarchar100是商品备注表格 4商品关系模式属性的说明2.2.5 订单关系模式订单(订单号,会员号,商品号,订单日期,订单总金额,商品名,收货人,寄货人,收货地址,寄货地址,邮政编码,收货人电话,寄货人电话,付款方式,付款状态,审核状态)字段名数据类型(最大)长度允许为空主键描述ordNumberbigint30否是订单号ordDatedatetime10否订单日期ordMoneyfloat2否订单总金额ordQuantityint10否订购数量memNumberint10否会员号gooNumberint10否商品号gooNamevarchar20否商品名receivervarchar20否收货人shipAddressvarchar50否收货地址zipCodechar6否邮政编码shipTelchar11否收货人电话payWayvarchar10否付款方式payFlagbit1否付款状态表格 5订单关系模式属性的说明2.2.6 编辑关系模式编辑(职员号,商品号,开始时间,职员名,商品名,操作名,开始时间,结束时间,备注)字段名数据类型(最大)长度允许为空主键描述empNumberint10否是职员号empNamevarchar20否职员名gooNumberint10否是商品号gooNamevarchar20否商品名ediNumberint10否商品编辑量startTimedatetime20否是开始时间endTimedatetime20否结束时间remarkvarchar100是备注表格 6编辑关系模式属性的说明2.3 数据库完整性设计2.3.1 会员表的创建create table Member(memNumber int primary key, -主码memName varchar(10) not null,nickname varchar(20),sex char(2),memPassword varchar(20) not null,email varchar(25) ,memLevel int not null,discount int not null,telephone char(11) not null,birthday datetime ,memAddress varchar(50) not null,IDcard varchar(18) ,regTime datetime not null)2.3.2 职员表的创建create table Employee(empNumber int primary key,-主码empName varchar(20) not null,sex char(2),empPassword varchar(20) not null,email varchar(25),salary int not null,telephone char(11) not null,birthday datetime,empAddress varchar(50),IDcard varchar(18) not null,regTime datetime not null)2.3.3 管理员表的创建create table Manager(manNumber int primary key,-主码manName varchar(20) not null,sex char(2),manPassword varchar(20) not null,email varchar(25),salary int not null,telephone char(11) not null,birthday varchar(10),IDcard varchar(18) not null,manAddress varchar(50) not null)2.3.4 商品表的创建create table Goods(gooNumber int primary key,-主码gooName varchar(20) not null,price float not null,stoNumber char(3) not null,gooQuantity int not null,remark varchar(100)2.3.5 订单表的创建create table Orders(ordNumber bigint primary key,-主码ordDate datetime not null,ordMoney float not null,ordQuantity int not null,memNumber int not null,gooNumber int not null,gooName varchar(20) not null,receiver varchar(20) not null,shipAddress varchar(20) not null,zipCode char(6) not null,shipTel char(11) not null,payWay varchar(10) not null,payFlag bit not null,foreign key(memNumber) references Member(memNumber),-外码foreign key(gooNumber) references Goods(gooNumber)-外码)2.3.6 编辑表的创建create table Edit(empNumber int not null,empName varchar(20) not null,gooNumber int not null,gooName varchar(20) not null,stoNumber int not null,startTime datetime not null,endTime datetime not null,remark varchar(100),primary key(empNumber,gooNumber,startTime),-主码foreign key(empNumber) references Employee(empNumber),-外码foreign key(gooNumber) references Goods(gooNumber)-外码)2.4 数据库安全性设计2.4.1 创建管理员用户create user manager with DBA2.4.2 创建职员角色create role employee给职员角色授权:grant select,update,insert,deleteon system.dbo.Goodsto employee 2.4.3 创建会员角色create role member给会员授权:grant select,deleteon system.dbo.Ordersto member2.5 建立索引2.5.1 会员表的索引create unique index Member_I on Member(memNumber)2.5.2 职员表的索引create unique index Employee_I on Employee(empNumber)2.5.3 商品表的索引create unique index Goods_I on Goods(gooNumber)2.5.4 订单表的索引create unique index Order_I on Orders(ordNumber)2.5.5 编辑表的索引create unique index Edit_I on Edit(empNumber asc,gooNumber desc)第3章 系统框架设计3.1模块3.1.1模块说明订单生成系统分为管理员、注册、职员和会员共四个模块。其中,管理员模块包括用户(职员和会员)信息管理和维护数据库共两个子模块;注册模块包括职员注册和会员注册共两个子模块;职员模块包括商品信息管理、审核订单和编辑记录共三个子模块;会员模块包括生成订单、查询订单和取消订单共三个子模块。第4章 职员和会员模块4.1 职员模块4.1.1商品信息管理子模块插入商品信息insert into Goods values(0000000000,xx牌饮料,3,001,4,null)删除包含指定内容的商品信息例如:删除商品名称中包含“xx牌”的商品信息delete from Goods where gooName like %xx牌%修改商品信息例如:将“xx牌饮料”修改为“yy牌饮料”,并且将价格改为4元update Goods set gooName=yy牌饮料, price=4where gooName=xx牌饮料 and price=3查询按指定要求的商品信息例如:查询价格小于5元且大于2元的饮料名称select gooName from Goods where price2 and price=0)insert into Orders_Pass select * from system.dbo.Orders where ordNumber=ordNumber4.1.3编辑记录子模块例如:录入商品“农夫山泉饮用天然水”200瓶if (object_id(tgr_edit_insert, tr) is not null) drop trigger tgr_edit_insertgocreate trigger tgr_edit_inserton edit for insert -插入触发asdeclare editNumber int, gooNumber int-从增加表中获值select editNumber=editnumber,gooNumber=gooNumber from insertedif editNumber=0-如果0增加商品表要加库存,否则则减库存 begin print editNumberupdate Goods set stoNumber=stoNumber+editNumber where gooNumber=gooNumberendelse begin print editNumberupdate Goods set stoNumber=stoNumber-editNumber where gooNumber=gooNumberendinsert into Edit values(626652316,-职工号梁录水,-职工名651797,-商品号农夫山泉饮用天然水,-商品名200,-录入商品数量2016-3-8 23:58:13,2016-3-9 00:58:13,null)例如:处理200瓶“农夫山泉饮用天然水”过期商品则把上面语句改成-200触发器同上,语句如下:insert into Edit values(626652316,-职工号梁录水,-职工名651797,-商品号农夫山泉饮用天然水,-商品名-200,-录入商品数量2016-3-9 23:58:13,2016-3-10 00:58:13,null)4.2 会员模块4.2.1生成订单子模块insert into system.dbo.Orders values(0000000000,2016-07-13 17:29:30,5000,4,0000000000,0000000000,xx牌饮料,xxx,xxx,xxx,xxx,支付宝,1)4.2.2 查询订单子模块按指定内容查询订单例如:查询指定日期的订单内容,并按订单号升序排列select * from system.dbo.Orders where orderDate between2016-07-13 00:00:00and2016-07-14 00:00:00order by ordNumber4.2.3 取消订单子模块取消某一订单号的订单例如:取消订单号为“0000000000”的订单delete from system.dbo.Orders where ordNumber=0000000000第5章 管理员和注册模块5.1管理员模块5.1.1用户(职员和会员)信息管理子模块增插入会员:insert into Employee values(823527379,郭韦来,男,51Ax2YqK,3jDeRpfE,70021961-7-24,4区街楼号,2011-9-2 18:59:52)插入职员:insert into Member values(495601306,周昀薄,周昀薄jateanfch,女,d2N3Gpo487A19gM,3WG2n9yX,19,31979-9-13,2区街楼号,2011-8-23 1:24:51)删例如:注销(删除)会员号为495601306的会员delete from Member where memNumber=495601306例如:注销(删除)职员号为823527379的会员delete from Employee where EmpNumber=823527379改例如:修改”周昀薄”的性别为”男”update Member set sex=男 where memName=周昀薄例如:修改2016年注册的会员至少享受5折update Member set discount=5 where year(regTime)=2016查例如:查询2010年之前注册的老会员,并降序排select * from Member where sex=女 and year(regTime)2010order by regtime desc例如:创建男职工视图create view empManasselect empName from system.dbo.Employee where sex=男例如:创建查询薪水在指定薪水范围内的职工信息存储过程create proc empSalarysala_min int,sala_max intasselect * from Employee where salary between sala_min and sala_maxexec empSalary 6000,7000-查询薪水为到内的职工信息5.1.2维护数据库子模块数据库的备份1、选择要备份的数据库“system”,点击鼠标右键 任务 备份2、在打开的“备份数据库 system”对话框中,先点击删除,然后点击“添加”,在弹出的“选择备份目标”对话框中3、选择好备份的路径(如D盘的江西-学籍-数据库备份文件夹中),文件类型选择“所有文件”,“文件名”那个位置填写上您要备份的数据库的名字(最好在您备份的数据库的名字后面加上日期,以方便以后查找),之后连续点击“确定”按钮即可完成数据库的备份操作。数据库的还原1、选择您要

温馨提示

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

最新文档

评论

0/150

提交评论