收藏 分销(赏)

数据库课设 体育用品销售系统.docx

上传人:pc****0 文档编号:8959098 上传时间:2025-03-09 格式:DOCX 页数:31 大小:182.69KB
下载 相关 举报
数据库课设 体育用品销售系统.docx_第1页
第1页 / 共31页
数据库课设 体育用品销售系统.docx_第2页
第2页 / 共31页
点击查看更多>>
资源描述
第一章 需求分析 1.1设计目标 中小型销售公司普遍存在员工素质偏低、效率不高、管理混乱等问题。本系统正是基于这些问题而设计。使用该本系统,可以规范销售仓储涉及的基本操作,提高员工工作效率,减少用工成本,规范管理,增加收益。 1.2功能要求 本系统针对仓储销售等环节所遇到的问题,设有商品信息管理、供应商信息管理、仓库信息管理、进货管理、销售管理五个管理功能模块,来实现对商品、供应商、客户、仓储、、进货、销售的规范管理。其中 (1)商品销售信息管理涉及商品信息添加、修改、查询、删除 (2)供应商信息管理涉及供应商信息的添加、修改、查询、删除 (3)仓库信息管理涉及仓储商品库存信息的添加、修改、查询、删除 (4)进货管理涉及进货单信息的生成和商品仓储信息的更新 (5)销售管理涉及销售单的生成和商品仓储信息的更新。 (6)客户信息管理涉及客户信息的添加、修改、查询、删除 1.2.1信息要求 系统能够随时根据需要,更新数据库的信息。对于录入的信息,要准确,详细,符合属性要求。 1.2.2操作要求 系统要能在提高管理效率的基础上,力求操作简单、易学、实用、方便,同时还不能对操作用户有太高的素质要求。 1.3可行性分析 1.3.1经济可行性 因为通过计算机控制,各种信息可以很容易的做到随时更新、维护,有利于新息的统一管理和维护,因此可以节约许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高学校的管理效率,节约了大量资金,所以从经济上完全是可行的。 1.3.2技术可行性 数据库是数据管理的最新技术,SQL语言能够很好的和其他界面编程语言工具(如C#)结合。用户只需面对操作界面,而不用管后台处理工作,方便用户使用。 综上所述,开发该系统具有较强的可行性。 第二章 概念结构设计 2.1概念设计 概念模型是对信息世界建模,所以概念模型应能够准确的描述出信息世界的常用概念。在需求分析阶段所得到的应用需求应首先抽象为信息世界的结构,才能更好的、更准确的用某一DBMS实现这些需求。而概念设计则是基于是完成需求分析后提供的需求说明书,用概念数据模型表示数据及其相互间的关系,这种数据模型是与DBMS无关的、面向现实世界的、易于被人所理解和接受的数据模型,其独立于计算机的数据模型,独立于计算机的软硬件系统,与用户进行交流十分方便。 概念性数据模型关心的是如何完整、正确地反映客观实际情况,是一种容易被人们理解的直观的数据库结构模式。同时易于更改、易于向网状、关系、层次等各种数据模型转换。概念性数据在用户和设计者之间建立了桥梁,它是整个数据库设计的关键。 概念设计中常用自顶而下的实体分析方法,即首先定义全局概念结构的框架,然后逐步细化。描述概念模型的有力工具是E-R模型,是建立概念性数据模型的有力工具。 2.2数据抽象与局部视图设计 2.2.1数据抽象 根据需求分析的数据进行分类抽象,形成了商品、供应商、仓库、客户四个实体类型。 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) 库存量 供应商 地址 供应商编号 名称 电话 银行账号 信誉度 商品 规格 商品编号 品牌 类型 仓库 商品编号 联系电话 存储 供应 数量 进货时间 客户 客户编号 客户类型 姓名 联系电话 数量 销售 销售编号 进价 售价 图2-6 基本E-R图 第三章 逻辑结构设计 3.1体育用品销售管理系统数据模型 关系模型的逻辑结构是一组关系模式的集合。E-R图则是有实体型、实体的属性和实体型之间的联系3个要素组成。所以将E-R图转换成关系模型实际上就是将实体型、实体的属性和实体型之间的联系转换成关系模式,转换过程中遵循的规则: 因为此系统E-R图中的联系为1:n或m:n,所以在转换过程中将实体间的多元联系转换成一个关系模型,该关系模型中的码由各实体的码组成。 由概念设计的E-R图抽象出来的关系模型如下所示: 其中主键用粗体标注,外键用下划线标注。 3.2数据模型的优化 本系统中,已按照数据依赖的理论对上面的关系模式进行了逐一分析,在进行了多次分解和比对后各关系模式已达到第三范式,虽然这不一定是最好关系模式,但此模式对于整个数据库设计来讲还是比较合理的,数据的操作效率和存储空间的利用效率都比较高。虽然有些查询比较难实现,但可以通过建立视图来实现。 第四章 物理结构设计 由逻辑设计抽象出来的关系表如下所示: 表4-1商品表 属性列 字段类型 字段长度 主码 商品编号 char 9 是 品牌 char 20 类型 char 20 规格 char 20 进价 float 售价 float 表4-2供应商表 属性列 字段类型 字段长度 主码 供应商编号 char 9 是 名称 char 20 地址 Char 20 电话 char 20 银行账号 Char 20 信誉度 Char 4 表4-3客户表 属性列 字段类型 字段长度 主码 客户编号 char 9 是 名称 char 10 联系方式 char 20 客户类型 Char 6 类型 char 8 表4-4仓库表 属性列 字段类型 字段长度 主码 商品编号 char 9 是 联系电话 char 20 库存量 int 表4-5进货表 属性列 字段类型 字段长度 主码 商品编号 char 9 是 供应商编号 Char 9 是 数量 Int 进货时间 Datetime 表4-6销售表 属性列 字段类型 字段长度 主码 商品编号 char 9 是 客户编号 Char 9 是 数量 int 销售员编号 char 9 是 卖出时间 datetime 表4-7用户表 属性列 字段类型 字段长度 主码 用户名 char 9 是 用户密码 char 19 用户类型 char 8 表4-8销售员表 属性列 字段类型 字段长度 主码 销售员编号 char 10 是 用户名 char 10 密码 char 20 类型 Char 8 第五章 数据库实施 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, filegrowth=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 ) create table JHD --进货单(供应关系) ( 供应商编号char(9), 商品编号char (9), 数量int not null, 进货时间datetime primary key (供应商编号,商品编号), foreign key (商品编号) references SPB (商品编号), foreign key (供应商编号) references GYS (供应商编号) ) create table KCB --库存表 ( 商品编号char(9) , 联系电话char(20), 库存量int, primary key(商品编号), foreign key (商品编号) references SPB (商品编号) ) 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 (销售员编号) references 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登录界面 select * from YHB WHERE 用户名='董世磊'and 用户密码= '20094051236'and 用户类型= '管理员' select * from KHB WHERE 用户名='王楠'and 用户密码= 'A1'and 用户类型= '客户' select * from YHB WHERE 用户名='董'and 用户密码= '3066'and 用户类型= '销售员' 5.2.2商品信息管理 如图5-2 图5-1商品信息管理视图 --销售员查看商品信息 create procedure 销售员查看商品信息@商品编号char(9) as begin if exists(select * from SPB where 商品编号= @商品编号) begin select 商品编号,品牌,类型,售价,规格from SPB where 商品编号= @商品编号 end else print'不存在该商品!' end exec 销售员查看商品信息'10003' --客户查看商品信息 create procedure 客户查看商品信息@商品编号char(9) as begin if exists(select * from SPB where 商品编号= @商品编号) begin select 商品编号,品牌,类型,售价,规格from SPB where 商品编号= @商品编号 end else print'不存在该商品!' end exec 客户查看商品信息'10003' --管理员删除商品信息 create trigger 删除商品信息 on SPB instead of delete as begin declare @商品编号char(9) select @商品编号= 商品编号from deleted delete JHD where 商品编号= @商品编号 delete XSD where 商品编号= @商品编号 delete KCB where 商品编号= @商品编号 end delete SPB where 商品编号= '10001' --管理员修改商品信息 create procedure 修改商品信息 @商品编号char(9), @品牌 char(20), @类型char(20), @售价float, @进价float, @规格char(20) as begin if exists(select * from SPB where 商品编号= @商品编号) begin update SPB set 品牌=@品牌, 类型=@类型, 售价=@售价, 进价=@进价, 规格=@规格 where 商品编号= @商品编号 print'商品信息修改成功!' end else print'不存在该商品!' end exec 修改商品信息'10001','李宁','T恤衫',189,100,'XXL' --管理员按商品编号查看商品信息 create procedure 查看商品信息@商品编号char(9) as begin if exists(select * from SPB where 商品编号= @商品编号) begin select * from SPB where 商品编号= @商品编号 end else print'不存在该商品!' end exec 查看商品信息'10002' --管理员按商品品牌查看商品信息 create procedure 查看商品品牌信息@品牌char(20) as begin if exists(select * from SPB where 品牌= @品牌) begin select * from SPB where 品牌= @品牌 end else print'不存在该品牌商品!' end exec 查看商品品牌信息'李宁' --管理员按商品类型查看商品信息--规格 create procedure 查看商品类型信息@类型char(20) as begin if exists(select * from SPB where 类型= @类型) begin select * from SPB where 类型= @类型 end else print'不存在该类型商品!' end exec 查看商品类型信息'T恤衫' --管理员按商品规格查看商品信息 create procedure 查看商品规格信息@规格char(20) as begin if exists(select * from SPB where 规格= @规格) begin select * from SPB where 规格= @规格 end else print'不存在该规格商品!' end exec 查看商品规格信息'XL' ------------------------ insert into SPB values('10001','李宁','T恤衫',189,100,'XL') insert into SPB values('10002','李宁','篮球鞋',189,100,'ML') insert into SPB values('10003','adidas','篮球',189,100,'XXL') insert into SPB values('10004','adidas','篮球鞋',189,100,'LL') insert into SPB values('10005','NIKE','跑鞋',189,100,'XXL') insert into SPB values('10006','NIKE','T恤衫',189,100,'ML') 5.2.3供应商信息管理 如图5-3 图5-3供应商信息管理 --管理员删除供应商信息同时要级联删除进货单的信息 create trigger 删除供应商 on GYS instead of delete as begin declare @供应商编号char(9) select @供应商编号= 供应商编号from deleted delete from JHD where 供应商编号= @供应商编号 end delete from GYS where 供应商编号= '1005' --管理员修改供应商信息 create procedure 修改供应商 @供应商编号char(9), @名称char(20), @地址char(20), @电话char(20), @银行账号char(20), @信誉度char(4) as begin if exists(select * from GYS where 供应商编号= @供应商编号) begin update GYS set 名称=@名称, 地址=@地址, 电话=@电话, 银行账号=@银行账号, 信誉度=@信誉度 where 供应商编号= @供应商编号 print'供应商信息修改成功!' end else print'不存在该供应商!' end exec 修改供应商'1001','申通体育','爱民道号','6666666','123465789','低' --管理员查看供应商信息 create procedure 查看供应商@供应商编号char(9) as begin if exists(select * from GYS where 供应商编号= @供应商编号) begin select * from GYS where 供应商编号= @供应商编号 end else print'不存在该供应商!' end exec 查看供应商'1002' --管理员查看高或低信誉供应商信息 create procedure 查看供应商信誉@信誉度char(4) as begin if exists(select * from GYS where 信誉度= @信誉度) begin select * from GYS where 信誉度= @信誉度 end else print'不存在该信誉度的供应商!' end exec 查看供应商信誉'高' 5.2.4销售员信息管理 如图5-4 图5-4销售员信息管理 --管理员删除销售员信息 create procedure 删除销售员信息@销售员编号char(10) as begin if exists(select *from selltable where 销售员编号=@销售员编号) begin delete selltable where 销售员编号=@销售员编号 print'信息删除成功!' end else print'没有该销售员,无法进行删除!' end exec 删除销售员信息'10' --管理员修改销售员信息 create procedure 修改销售员信息 @销售员编号char(10), @用户名char(10), @密码char(20) as begin if exists(select *from selltable where 销售员编号=@销售员编号) begin update selltable set 用户名=@用户名, 密码=@密码 where 销售员编号=@销售员编号 print'信息修改成功!' end else print'没有该销售员,无法进行修改!' end exec 修改销售员信息'1','董','3066' --管理员查看销售员信息 create procedure 查看销售员信息@销售员编号char(10) as begin if exists(select *from selltable where 销售员编号=@销售员编号) begin select *from selltable where 销售员编号=@销售员编号 end else print'没有该销售员!' end exec 查看销售员信息'1' --客户查看销售员信息 create procedure 客户查看销售员信息@销售员编号char(10) as begin if exists(select *from selltable where 销售员编号=@销售员编号) begin select 销售员编号,用户名from selltable where 销售员编号=@销售员编号 end else print'没有该销售员!' end exec 客户查看销售员信息'1' insert into selltable values('1','董','6899','销售员') insert into selltable values('2','王','0369','销售员') insert into selltable values('3','王','0369','销售员') 5.2.5客户信息管理 如图5-5 图5-5客户信息管理 --管理员,销售员删除客户信息 create trigger 级联删除客户信息 on KHB instead of delete as begin declare @客户编号char(9) select @客户编号=客户编号from deleted delete from XSD where 客户编号=@客户编号 end delete KHB where 客户编号='A1' --管理员,销售员修改客户信息 create procedure 修改客户信息 @客户编号char(9), @客户类型char(6), @姓名char(10), @联系电话char(20) as begin if exists(select *from KHB where 客户编号=@客户编号) begin update KHB set 客户类型=@客户类型, 姓名=@姓名, 联系电话=@联系电话 where 客户编号=@客户编号 print'信息修改成功!' end else print'不存在该客户,无法进行修改!' end exec 修改客户信息'A5','高级','苏南','15239686890' --管理员,销售员查看客户信息 create procedure 查看客户信息@客户编号char(9) as begin if exists(select *from KHB where 客户编号=@客户编号) begin select *from KHB where 客户编号=@客户编号 end else print'不存在该客户!' end exec 查看客户信息'A1' --管理员,销售员按客户类型查看客户信息 create procedure 按客户类型查看客户信息@客户类型char(9) as begin if exists(select *from KHB where 客户类型=@客户类型) begin select *from KHB where 客户类型=@客户类型 end else print'不存在该类型客户!' end exec 按客户类型查看客户信息'高级' insert into KHB values('A1','高级','王楠','15239686845') insert into KHB values('A2','高级','莉莉','15239686834') insert into KHB values('A3','普通','李斌','15239686867') insert into KHB values('A4','高级','刘海','15239686889') insert into KHB values('A5','普通','苏南','15239686890') 5.2.6销售信息管理 如图5-6 图5-6销售系统管理 --管理员删除销售信息 create procedure 删除销售信息@销售员编号char(9),@商品编号char(9) as begin if exists(select * from XSD where 销售员编号=@销售员编号and 商品编号= @商品编号) begin delete XSD where 销售员编号=@销售员编号and 商品编号= @商品编号 print'信息删除成功!' end else print'不存在该供应商供应的该商品,无法进行删除!' end exec 删除销售信息'1','10004' --管理员按卖出时间删除销售信息 create procedure 按卖出时间删除销售信息@卖出时间datetime as begin if exists(select * from XSD where 卖出时间< @卖出时间) begin delete XSD where 卖出时间< @卖出时间 print'销售信息删除成功!' end else print'不存在该销售员销售的该商品!' end exec 按卖出时间删除销售信息'20110101' --管理员按卖出时间查看销售信息 create procedure 按卖出时间查看销售信息@卖出时间datetime as begin if exists(select * from XSD where 卖出时间=@卖出时间) begin select *from XSD where 卖出时间=@卖出时间 end else print'该时间没有卖出货物!' end EXEC 按卖出时间查看销售信息'20110912' --管理员按大于卖出时间查看销售信息 create procedure 按大于卖出时间查看销售信息@卖出时间datetime as begin if exists(select * from XSD where 卖出时间>@卖出时间) begin select *from XSD where 卖出时间>@卖出时间 end else print'该时间没有卖出货物!' end exec 按大于卖出时间查看销售信息'20110101' --管理员按小于卖出时间查看销售信息 create procedure 按小于卖出时间查看销售信息@卖出时间datetime as begin if exists(select * from XSD where 卖出时间<@卖出时间) begin select *from XSD where 卖出时间<@卖出时间 end else print'该时间没有卖出货物!' end exec 按小于卖出时间查看销售信息'20121010' --管理员按商品编号查看销售信息 create procedure 按商品编号查看销售信息@商品编号char(9) as begin if exists(select * from XSD where 商品编号=@商品编号) begin select *from XSD where 商品编号=@商品编号 end else print'没有卖出该编号的货!' end exec 按商品编号查看销售信息'10003' insert into XSD values('1','10001',20,'20111020','A1') insert into XSD values('1','10004',2,'20121020','A2') insert into XSD values('1','10006',10,'20121120','A3') insert into XSD values('2','10002',20,'20120820','A4') insert into XSD values('2','10003',40,'20121220','A5') insert into XSD values('2','10005',6,'20120520','A2') insert into XSD values('2','10004',6,'20100520','A1') 5.2.7进货信息管理 如图5-7 图5-7进货信息管理 --管理员删除进货信息 create procedure 删除进货信息@供应商编号char(9),@商品编号char(9) as begin if exists(select * from JHD where 供应商编号=@供应商编号and 商品编号= @商品编号) begin delete JHD where 供应商编号=@供应商编号and 商品编号= @商品编号 end else print'不存在该供应商供应的该商品,无法进行删除!' end exec 删除进货信息'1002','10005' --管理员修改进货信息 create procedure 修改进货信息 @供应商编号char(9), @商品编号char (9), @数量int, @进货时间datetime as begin if exists(select * from JHD where 供应商编号=@供应商编号and 商品编号= @商品编号) begin update JHD set 数量=@数量, 进货时间=@进货时间 where 供应商编号=@供应商编号and 商品编号= @商品编号 print'进货信息修改成功!' end else print'不存在该供应商供应的该商品!' end exec 修改进货信息'1001','10006',200,'21210912' --管理员按进货时间查看进货信息 create procedure 按进货时间查看进货信息@进货时间datetime as begin if exists(select * from JHD where 进货时间=@进货时间) begin select *from JHD where 进货时间=@进货时间 end else print'该时间没有进货!' end EXEC 按进货时间查看进货信息'20110912' --管理员按商品编号查看进货信息 create procedure 按商品编号查看进货信息@商品编号char(9) as begin if exists(select * from JHD where 商品编号=@商品编号) begin select *from JHD where 商品编号=@商品编号 end else print'没有进该编号的货!' end exec 按商品编号查看进货信息'10003' insert into JHD values('1001','10006',100,'20110912') insert into JHD values('1002','10005',100,'20110923') insert into JHD values('1001','10004',100,'20111012') insert into JHD values('1003','10003',100,'20111112') insert into JHD values('1002','10002',100,'20111212') insert into JHD values('1001','10001',100,'20120112') insert into JHD values('1005','10001',100,'20120412') 5.2.8仓库信息管理 如图5-8 图5-8仓库信息管理 --管理员查看库存信息 create procedure 查看库存信息@商品编号char(9) as begin if exists(select * from KCB where 商品编号=@商品编号) begin select *from KCB where 商品编号=@商品编号 end else
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 数据库/数据算法

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服