《数据库课设 体育用品销售系统.docx》由会员分享,可在线阅读,更多相关《数据库课设 体育用品销售系统.docx(31页珍藏版)》请在三一办公上搜索。
1、北华航天工业学院课程设计报告第一章 需求分析1.1设计目标中小型销售公司普遍存在员工素质偏低、效率不高、管理混乱等问题。本系统正是基于这些问题而设计。使用该本系统,可以规范销售仓储涉及的基本操作,提高员工工作效率,减少用工成本,规范管理,增加收益。1.2功能要求本系统针对仓储销售等环节所遇到的问题,设有商品信息管理、供应商信息管理、仓库信息管理、进货管理、销售管理五个管理功能模块,来实现对商品、供应商、客户、仓储、进货、销售的规范管理。其中(1)商品销售信息管理涉及商品信息添加、修改、查询、删除(2)供应商信息管理涉及供应商信息的添加、修改、查询、删除(3)仓库信息管理涉及仓储商品库存信息的添
2、加、修改、查询、删除(4)进货管理涉及进货单信息的生成和商品仓储信息的更新(5)销售管理涉及销售单的生成和商品仓储信息的更新。(6)客户信息管理涉及客户信息的添加、修改、查询、删除1.2.1信息要求系统能够随时根据需要,更新数据库的信息。对于录入的信息,要准确,详细,符合属性要求。1.2.2操作要求系统要能在提高管理效率的基础上,力求操作简单、易学、实用、方便,同时还不能对操作用户有太高的素质要求。1.3可行性分析1.3.1经济可行性因为通过计算机控制,各种信息可以很容易的做到随时更新、维护,有利于新息的统一管理和维护,因此可以节约许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系
3、统可以提高学校的管理效率,节约了大量资金,所以从经济上完全是可行的。1.3.2技术可行性数据库是数据管理的最新技术,SQL语言能够很好的和其他界面编程语言工具(如C#)结合。用户只需面对操作界面,而不用管后台处理工作,方便用户使用。综上所述,开发该系统具有较强的可行性。第二章 概念结构设计2.1概念设计概念模型是对信息世界建模,所以概念模型应能够准确的描述出信息世界的常用概念。在需求分析阶段所得到的应用需求应首先抽象为信息世界的结构,才能更好的、更准确的用某一DBMS实现这些需求。而概念设计则是基于是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互间的关系,这种数据模型是与DBM
4、S无关的、面向现实世界的、易于被人所理解和接受的数据模型,其独立于计算机的数据模型,独立于计算机的软硬件系统,与用户进行交流十分方便。概念性数据模型关心的是如何完整、正确地反映客观实际情况,是一种容易被人们理解的直观的数据库结构模式。同时易于更改、易于向网状、关系、层次等各种数据模型转换。概念性数据在用户和设计者之间建立了桥梁,它是整个数据库设计的关键。概念设计中常用自顶而下的实体分析方法,即首先定义全局概念结构的框架,然后逐步细化。描述概念模型的有力工具是E-R模型,是建立概念性数据模型的有力工具。2.2数据抽象与局部视图设计2.2.1数据抽象根据需求分析的数据进行分类抽象,形成了商品、供应
5、商、仓库、客户四个实体类型。1、 商品概念模型(图2-1)商品规格商品编号品牌类型进价售价图2-1商品概念模型2、 供应商概念模型(图2-2)供应商地址供应商编号名称电话银行账号信誉度图2-2供应商概念模型3、 仓库概念模型(图2-3)仓库商品编号联系电话库存量图2-3仓库概念模型4、客户管理模型(图2-4)客户客户编号客户类型联系电话名称图2-4客户管理模型5、销售员管理模型(图2-5)销售员销售员编号类型联系方式用户名图2-5销售员管理模型2.2.2基本E-R图设计基本E-R图(图2-6)库存量供应商地址供应商编号名称电话银行账号信誉度商品规格商品编号品牌类型仓库商品编号联系电话存储供应数
6、量进货时间客户客户编号客户类型姓名联系电话数量销售销售编号进价售价图2-6 基本E-R图第三章 逻辑结构设计3.1体育用品销售管理系统数据模型关系模型的逻辑结构是一组关系模式的集合。E-R图则是有实体型、实体的属性和实体型之间的联系3个要素组成。所以将E-R图转换成关系模型实际上就是将实体型、实体的属性和实体型之间的联系转换成关系模式,转换过程中遵循的规则:因为此系统E-R图中的联系为1:n或m:n,所以在转换过程中将实体间的多元联系转换成一个关系模型,该关系模型中的码由各实体的码组成。由概念设计的E-R图抽象出来的关系模型如下所示:其中主键用粗体标注,外键用下划线标注。3.2数据模型的优化本
7、系统中,已按照数据依赖的理论对上面的关系模式进行了逐一分析,在进行了多次分解和比对后各关系模式已达到第三范式,虽然这不一定是最好关系模式,但此模式对于整个数据库设计来讲还是比较合理的,数据的操作效率和存储空间的利用效率都比较高。虽然有些查询比较难实现,但可以通过建立视图来实现。第四章 物理结构设计由逻辑设计抽象出来的关系表如下所示:表4-1商品表属性列字段类型字段长度主码商品编号char9是品牌char20类型char20规格char20进价float售价float表4-2供应商表属性列字段类型字段长度主码供应商编号char9是名称char20地址Char20电话char20银行账号Char2
8、0信誉度Char4表4-3客户表属性列字段类型字段长度主码客户编号char9是名称char 10联系方式char20客户类型Char6类型char8表4-4仓库表属性列字段类型字段长度主码商品编号char9是联系电话char20库存量int 表4-5进货表属性列字段类型字段长度主码商品编号char9是供应商编号Char9是数量Int进货时间Datetime表4-6销售表属性列字段类型字段长度主码商品编号char9是客户编号Char9是数量int销售员编号char9是卖出时间datetime表4-7用户表属性列字段类型字段长度主码用户名char9是用户密码char19用户类型char8表4-8销
9、售员表属性列字段类型字段长度主码销售员编号char10是用户名char10密码char20类型Char8第五章 数据库实施5.1数据库创建5.1.1创建数据库create database 体育用品销售系统管理on ( name = 体育用品销售管理_data, filename=d:data体育用品销售管理_data.mdf, size=10MB, maxsize=100MB, filegrowth=10%) log on( name= 体育用品销售管理_log, filename=f:data体育用品销售管理_log.ndf, size=10MB, maxsize=100MB, fileg
10、rowth=1MB)5.1.2创建关系模型create table GYS -供应商(供应商编号char(9) primary key,名称char(20) not null,地址char(20)not null,电话char(20)not null,银行账号char(20)not null,信誉度char(4)create table SPB -商品表(商品编号char(9) primary key,品牌 char(20)not null,类型char(20) not null,售价float not null,进价float not null,规格char (20)not null)cre
11、ate table JHD -进货单(供应关系)(供应商编号char(9),商品编号char (9),数量int not null,进货时间datetimeprimary key (供应商编号,商品编号),foreign key (商品编号) references SPB (商品编号),foreign key (供应商编号) references GYS (供应商编号)create table KCB -库存表(商品编号char(9) ,联系电话char(20), 库存量int, primary key(商品编号),foreign key (商品编号) references SPB (商品编号
12、)create table selltable-售货员表( 销售员编号char(10) primary key, 用户名char(10)not null, 密码char(20)not null, 类型char(8)create table XSD -销售单(销售员编号char(10),商品编号char(9) not null,数量int not null, 卖出时间datetime,客户编号char(9),primary key(销售员编号,商品编号,客户编号),foreign key (商品编号) references SPB (商品编号),foreign key (销售员编号) refer
13、ences selltable (销售员编号), foreign key (客户编号) references KHB (客户编号),)create table YHB -管理员表( 用户名char(9) primary key, 用户密码char(19) not null, 用户类型char(8)-客户表create table KHB( 客户编号char(9)primary key,客户类型char(6) check(客户类型in(高级,普通),姓名char(10),联系电话char(20)not null, 类型char(8)5.2各功能实现5.2.1登录界面如图5-1图5-1登录界面se
14、lect * from YHB WHERE 用户名=董世磊and 用户密码= 20094051236and 用户类型= 管理员select * from KHB WHERE 用户名=王楠and 用户密码= A1and 用户类型= 客户select * from YHB WHERE 用户名=董and 用户密码= 3066and 用户类型= 销售员5.2.2商品信息管理如图5-2图5-1商品信息管理视图-销售员查看商品信息create procedure 销售员查看商品信息商品编号char(9)asbegin if exists(select * from SPB where 商品编号= 商品编号
15、) begin select 商品编号,品牌,类型,售价,规格from SPB where 商品编号= 商品编号 end else print不存在该商品!endexec 销售员查看商品信息10003-客户查看商品信息create procedure 客户查看商品信息商品编号char(9)asbegin if exists(select * from SPB where 商品编号= 商品编号) begin select 商品编号,品牌,类型,售价,规格from SPB where 商品编号= 商品编号 end else print不存在该商品!endexec 客户查看商品信息10003-管理员
16、删除商品信息create trigger 删除商品信息on SPBinstead of deleteasbegin declare 商品编号char(9) select 商品编号= 商品编号from deleted delete JHD where 商品编号= 商品编号 delete XSD where 商品编号= 商品编号 delete KCB where 商品编号= 商品编号enddelete SPB where 商品编号= 10001-管理员修改商品信息create procedure 修改商品信息商品编号char(9),品牌 char(20),类型char(20),售价float,进价
17、float,规格char(20)asbegin if exists(select * from SPB where 商品编号= 商品编号) begin update SPBset 品牌=品牌,类型=类型,售价=售价,进价=进价,规格=规格 where 商品编号= 商品编号print商品信息修改成功! end else print不存在该商品!endexec 修改商品信息10001,李宁,T恤衫,189,100,XXL-管理员按商品编号查看商品信息create procedure 查看商品信息商品编号char(9)asbegin if exists(select * from SPB where
18、 商品编号= 商品编号) begin select * from SPB where 商品编号= 商品编号 end else print不存在该商品!endexec 查看商品信息10002-管理员按商品品牌查看商品信息create procedure 查看商品品牌信息品牌char(20)asbegin if exists(select * from SPB where 品牌= 品牌) begin select * from SPB where 品牌= 品牌 end else print不存在该品牌商品!endexec 查看商品品牌信息李宁-管理员按商品类型查看商品信息-规格create pro
19、cedure 查看商品类型信息类型char(20)asbegin if exists(select * from SPB where 类型= 类型) begin select * from SPB where 类型= 类型 end else print不存在该类型商品!endexec 查看商品类型信息T恤衫-管理员按商品规格查看商品信息create procedure 查看商品规格信息规格char(20)asbegin if exists(select * from SPB where 规格= 规格) begin select * from SPB where 规格= 规格 end else
20、print不存在该规格商品!endexec 查看商品规格信息XL-insert into SPBvalues(10001,李宁,T恤衫,189,100,XL)insert into SPBvalues(10002,李宁,篮球鞋,189,100,ML)insert into SPBvalues(10003,adidas,篮球,189,100,XXL)insert into SPBvalues(10004,adidas,篮球鞋,189,100,LL)insert into SPBvalues(10005,NIKE,跑鞋,189,100,XXL)insert into SPBvalues(10006
21、,NIKE,T恤衫,189,100,ML)5.2.3供应商信息管理如图5-3图5-3供应商信息管理-管理员删除供应商信息同时要级联删除进货单的信息create trigger 删除供应商on GYSinstead of deleteasbegin declare 供应商编号char(9) select 供应商编号= 供应商编号from deleted delete from JHD where 供应商编号= 供应商编号enddelete from GYS where 供应商编号= 1005-管理员修改供应商信息create procedure 修改供应商供应商编号char(9),名称char(
22、20),地址char(20),电话char(20),银行账号char(20),信誉度char(4)asbegin if exists(select * from GYS where 供应商编号= 供应商编号) begin update GYSset 名称=名称,地址=地址,电话=电话,银行账号=银行账号,信誉度=信誉度 where 供应商编号= 供应商编号 print供应商信息修改成功! end else print不存在该供应商!endexec 修改供应商1001,申通体育,爱民道号,6666666,123465789,低-管理员查看供应商信息create procedure 查看供应商供应
23、商编号char(9)asbegin if exists(select * from GYS where 供应商编号= 供应商编号) begin select * from GYS where 供应商编号= 供应商编号 end else print不存在该供应商!endexec 查看供应商1002-管理员查看高或低信誉供应商信息create procedure 查看供应商信誉信誉度char(4)asbegin if exists(select * from GYS where 信誉度= 信誉度) begin select * from GYS where 信誉度= 信誉度 end else pr
24、int不存在该信誉度的供应商!endexec 查看供应商信誉高5.2.4销售员信息管理如图5-4图5-4销售员信息管理-管理员删除销售员信息create procedure 删除销售员信息销售员编号char(10)asbeginif exists(select *from selltable where 销售员编号=销售员编号)begindelete selltablewhere 销售员编号=销售员编号 print信息删除成功!endelseprint没有该销售员,无法进行删除!endexec 删除销售员信息10-管理员修改销售员信息create procedure 修改销售员信息销售员编号c
25、har(10),用户名char(10),密码char(20)asbeginif exists(select *from selltable where 销售员编号=销售员编号)beginupdate selltableset 用户名=用户名, 密码=密码where 销售员编号=销售员编号 print信息修改成功!endelseprint没有该销售员,无法进行修改!endexec 修改销售员信息1,董,3066-管理员查看销售员信息create procedure 查看销售员信息销售员编号char(10)asbeginif exists(select *from selltable where
26、销售员编号=销售员编号)beginselect *from selltable where 销售员编号=销售员编号endelseprint没有该销售员!endexec 查看销售员信息1-客户查看销售员信息create procedure 客户查看销售员信息销售员编号char(10)asbeginif exists(select *from selltable where 销售员编号=销售员编号)beginselect 销售员编号,用户名from selltable where 销售员编号=销售员编号endelseprint没有该销售员!endexec 客户查看销售员信息1insert into
27、 selltablevalues(1,董,6899,销售员)insert into selltablevalues(2,王,0369,销售员)insert into selltablevalues(3,王,0369,销售员)5.2.5客户信息管理如图5-5图5-5客户信息管理-管理员,销售员删除客户信息create trigger 级联删除客户信息on KHBinstead of deleteasbegindeclare 客户编号char(9)select 客户编号=客户编号from deleteddelete from XSD where 客户编号=客户编号enddelete KHB whe
28、re 客户编号=A1-管理员,销售员修改客户信息create procedure 修改客户信息客户编号char(9),客户类型char(6),姓名char(10),联系电话char(20)asbegin if exists(select *from KHB where 客户编号=客户编号)beginupdate KHBset 客户类型=客户类型,姓名=姓名,联系电话=联系电话where 客户编号=客户编号 print信息修改成功!end else print不存在该客户,无法进行修改!endexec 修改客户信息A5,高级,苏南,15239686890-管理员,销售员查看客户信息create
29、procedure 查看客户信息客户编号char(9)asbeginif exists(select *from KHB where 客户编号=客户编号)begin select *from KHB where 客户编号=客户编号endelseprint不存在该客户!endexec 查看客户信息A1-管理员,销售员按客户类型查看客户信息create procedure 按客户类型查看客户信息客户类型char(9)asbeginif exists(select *from KHB where 客户类型=客户类型)begin select *from KHB where 客户类型=客户类型ende
30、lseprint不存在该类型客户!endexec 按客户类型查看客户信息高级insert into KHBvalues(A1,高级,王楠,15239686845)insert into KHBvalues(A2,高级,莉莉,15239686834)insert into KHBvalues(A3,普通,李斌,15239686867)insert into KHBvalues(A4,高级,刘海,15239686889)insert into KHBvalues(A5,普通,苏南,15239686890)5.2.6销售信息管理如图5-6图5-6销售系统管理-管理员删除销售信息create proc
31、edure 删除销售信息销售员编号char(9),商品编号char(9)asbegin if exists(select * from XSD where 销售员编号=销售员编号and 商品编号= 商品编号) begin delete XSD where 销售员编号=销售员编号and 商品编号= 商品编号 print信息删除成功! end else print不存在该供应商供应的该商品,无法进行删除!endexec 删除销售信息1,10004-管理员按卖出时间删除销售信息create procedure 按卖出时间删除销售信息卖出时间datetimeasbeginif exists(selec
32、t * from XSD where 卖出时间 卖出时间) begin delete XSDwhere 卖出时间卖出时间) begin select *from XSD where 卖出时间卖出时间 end else print该时间没有卖出货物!endexec 按大于卖出时间查看销售信息20110101-管理员按小于卖出时间查看销售信息create procedure 按小于卖出时间查看销售信息卖出时间datetimeasbegin if exists(select * from XSD where 卖出时间卖出时间) begin select *from XSD where 卖出时间卖出时
33、间 end else print该时间没有卖出货物!endexec 按小于卖出时间查看销售信息20121010-管理员按商品编号查看销售信息create procedure 按商品编号查看销售信息商品编号char(9)asbegin if exists(select * from XSD where 商品编号=商品编号) begin select *from XSD where 商品编号=商品编号 end else print没有卖出该编号的货!endexec 按商品编号查看销售信息10003insert into XSDvalues(1,10001,20,20111020,A1)insert
34、 into XSDvalues(1,10004,2,20121020,A2)insert into XSDvalues(1,10006,10,20121120,A3)insert into XSDvalues(2,10002,20,20120820,A4)insert into XSDvalues(2,10003,40,20121220,A5)insert into XSDvalues(2,10005,6,20120520,A2)insert into XSDvalues(2,10004,6,20100520,A1)5.2.7进货信息管理如图5-7图5-7进货信息管理-管理员删除进货信息cre
35、ate procedure 删除进货信息供应商编号char(9),商品编号char(9)asbegin if exists(select * from JHD where 供应商编号=供应商编号and 商品编号= 商品编号) begin delete JHD where 供应商编号=供应商编号and 商品编号= 商品编号 end else print不存在该供应商供应的该商品,无法进行删除!endexec 删除进货信息1002,10005-管理员修改进货信息create procedure 修改进货信息供应商编号char(9),商品编号char (9),数量int,进货时间datetimeas
36、beginif exists(select * from JHD where 供应商编号=供应商编号and 商品编号= 商品编号) begin update JHDset 数量=数量, 进货时间=进货时间where 供应商编号=供应商编号and 商品编号= 商品编号print进货信息修改成功! end else print不存在该供应商供应的该商品!endexec 修改进货信息1001,10006,200,21210912-管理员按进货时间查看进货信息create procedure 按进货时间查看进货信息进货时间datetimeasbegin if exists(select * from
37、JHD where 进货时间=进货时间) begin select *from JHD where 进货时间=进货时间 end else print该时间没有进货!endEXEC 按进货时间查看进货信息20110912-管理员按商品编号查看进货信息create procedure 按商品编号查看进货信息商品编号char(9)asbegin if exists(select * from JHD where 商品编号=商品编号) begin select *from JHD where 商品编号=商品编号 end else print没有进该编号的货!endexec 按商品编号查看进货信息100
38、03insert into JHDvalues(1001,10006,100,20110912)insert into JHDvalues(1002,10005,100,20110923)insert into JHDvalues(1001,10004,100,20111012)insert into JHDvalues(1003,10003,100,20111112)insert into JHDvalues(1002,10002,100,20111212)insert into JHDvalues(1001,10001,100,20120112)insert into JHDvalues(1005,10001,100,20120412)5.2.8仓库信息管理如图5-8图5-8仓库信息管理-管理员查看库存信息create procedure 查看库存信息商品编号char(9)asbegin if exists(select * from KCB where 商品编号=商品编号) begin select *from KCB where 商品编号=商品编号