《数据库课程设计报告手机销售管理信息系统的设计.doc》由会员分享,可在线阅读,更多相关《数据库课程设计报告手机销售管理信息系统的设计.doc(21页珍藏版)》请在三一办公上搜索。
1、摘 要由于我国近年来企业管理改革力度不断加大,物品流通越来越广泛,商品流通格局也产生了巨大的变化,连锁销售的经营模式逐渐形成与发展。在当前行业竞争日趋激烈的市场环境下,必须运用信息技术和现代管理思想,提高管理行业的管理水平、工作效率,降低运营成本,提升经济效益,最终提高企业的核心竞争力。 销售管理信息系统的设计与开发就是为了帮助企业运用信息化手段对本企业流程进行管理。本系统采用Visual Basic 6.0 与Microsoft SQL Server 2000结合的模式进行开发。通过需求分析、系统分析和系统设计,实现交易管理,进货统计、销售统计,业绩查看,数据表的查看,并将将薪水与员工的销售
2、情况挂钩,提高员工的积极性和企业有效管理企业的进销存情况以及提高工作效率。关键词:销售;信息技术;管理 一系统分析与设计1.1.需求分析无论是一个销售公司还是一个销售商店,都有很多的销售数据需要管理。手工管理这些纷繁复杂数据的方式已经不适应时代的潮流,实现数据规范化、自动化的电脑管理,是一个管理规范、运作高效的企业单位的必然要求。本系统就是为了实现各销售单位高效管理而设计的。本系统主要考虑了最为普遍的销售管理系统需求:(1) 进货时入库登记,以便日后查看和统计进货情况。(2) 销售时把相应数量的商品从现存商品库中减去,并记录于另外一个销售库中,以便日后查看和统计销售信息。(3) 是销售系统难免
3、会有顾客退货情况发生,因此还需建立一个相应的退化管理, 把退回来的货加入显存商品库,再从销售库中减去,进行退货登记。(4) 还要能够随时查看各种信息,如员工信息、退货信息、销售信息、退货信息。(5) 除了以上一些基本的需求外,实际中公司用来进行决策和管理分析的数据才是用的最多的数据库。因此还需要有一些相应的关于以上数据的统计信息。如希望查看各个时间段的进货和销售情况,一边对以后的运作进行一个准确的预测和正确的决断。(6) 为了调动员工的积极性,员工的薪水应该和他的销售情况挂钩的,因此还需要能够查看各员工的销售情况,以便对他们的业绩进行考核和评比。本次课程设计是针对一般销售公司都有的以上需求而设
4、计的,可以有效的管理数据。主要功能有交易管理,包括进行进货登记管理、销售登记管理、退货登记管理;进货统计管理,其中包括有关进货的各种统计数据表,如今日进货统计、本月进货统计、本季度进货登记、本年度进货统计等;销售统计管理,其中包括有关销售的各种统计数据表,如今日销售统计、本月销售统计、本季度销售登记、本年度销售统计等;员工销售业绩的考核,可以很方便的查看各员工的销售情况,一边对各员工的销售业绩进行考核比较。1.2.系统设计1.2.1.系统功能分析本系统总体的功能是实现销售公司销售管理的系统化、规范化和自动化。本系统要完成的功能有:(1) 系统登录:包括用户登录、添加用户、修改密码、退出系统等。
5、(2) 交易管理:包括进货登记、销售登记、退货登记等。其中进货登记中还包括进货厂商的登记,如果是新的进货厂商,可以在此登记入库。进货和销售的主要交易都是在此进行的。每次交易(包括进货、销售和退货)都需要对商品名、生产厂商、商品型号、单价、数量、总金额、交易日期、经手业务员编号等各项进行登记。(3) 进货统计:每次进货统计都是按进货厂商和进货金额顺序排列的。使用一个表格现实所选时间段的全部进货数据,包括进货编号、商品名、生产厂商、产品型号、单价、数量、总金额进货日期、业务员标号等;在使用另一表格显示分别从各个厂商进货的金额,还有一个文本框用于显示此时间段的总进货金额。(4) 销售统计:每次销售都
6、是按照产品厂商和销售金额顺序排列的,用户可以目了然的看出各种型号产品的销售额。使用一个表格显示所选时间段的全部销售数据,包括销售编号、商品名、生产厂商、产品型号、单价、数量、总金额、销售员日期、销售员编号等;在使用另一个表格分别显示各个厂商的销售金额,还有一个文本框用于显示此时间段各个员工的销售金额。(5) 业绩查看:实现各员工销售情况的统计,可一次性显示所有员工的销售情况,也可以根据员工编号产看各个员工的销售情况。(6) 查看数据库:实现各种数据表的浏览,包括进货表、销售表、退货表、员工表、进货商表。浏览时此数据表的所有信息项全部显示。如果是员工信息或进货商信息有变化,还可以对员工表和进货商
7、表进行修改,其他的表则不能进行修改,防止有人制造假数据。1.2.2.系统功能设计模块对上述的功能进行集中、分块,按照结构化程序设计要求,尽心分析,得到了如图所示的系统功能模块图。销售系统系统设置交易管理进货统计销售统计查看数据表修改密码退出用户添加用户进货登记销售登记退货登记日进货量月进货量季度进货量年进货量日销售量月销售量退货表季度销售量现存货表已售货表年销售量员工表进货商表1.2.3.系统流程图 开始用户登录失败3次?退出程序读取用户类型1 管理自己的用户信息2 管理普通用户的信息 交易管理进货统计销售统计业绩查看查看数据表管理自己的用户信息重试 是成功Admin用户 普通用户二概念结构设
8、计2.1. 实体及其属性2.1.1. Employee表E-R图Employee员工编号员工姓名员工电话员工地址 2.1.2. Goods表 E-R图 Goods 商品编号生产厂商商品名型号单价 数量总金额进货年进货月进货日业务员编号 2.1.3. Manufacturer表 E-R图 Manufacturer厂商编号厂商名称法人代表电话厂商地址 2.1.4. Retreat 表 E-R图 Retreat 商品名型号单价 数量总金额退货年退货月退货日业务员编号退货编号厂商 2.1.5. Sell 表 E-R图 Sell 商品编号生产厂商商品名型号单价 数量总金额销售年销售月销售日业务员编号 2
9、.1.6. Userdb 表 E-R图 Userdb用户名用户编号密码 2.2. 总体E-R图manufatureemployeeretreatgoodssell出售采购收回生产厂商供应生产厂商生产厂商 1 11n nn nm返回11三分析与设计数据库3.1.表的建立从上面的功能设计和程序浏览中不难看出本系统需要建立以下几个数据库:Goods表(现存货表)Sell表(已销售表)Retreat表(退货表)Employee表(员工表)Manufacturer表(进货厂商)Uesrdb表(用户表)由于本系统使用的数据量比较小,因此这些表都集中建立在一个数据库中。(1) Employee表(员工表)中
10、包括有员工编号、员工姓名、员工电话、员工地址等字段,具体如图所示: 员工编号int标识,自动编号,主键员工姓名nvarchar字段大小为10员工电话nvarchar字段大小为20员工地址nvarchar字段大小为100由关系可得该表属于第三范式。(2) Goods表(现存货表)中包括有商品编号、生产厂商、商品名、型号、单价、数量、总金额、进货年、进货月、进货日、业务员编号等字段。具体设置如下:字段名数据类型说明商品编号 int标识,自动编号,主键生产厂商nvarchar字段大小为20,外键商品名nvarchar字段大小为20型号nvarchar字段大小为20单价money货币型数量numeri
11、c数值型总金额money货币型进货年smallint短整型进货月smallint短整型进货日smallint短整型业务员编号int 整型,外键由关系可得该表属于第三范式。(3) Sell表(已销售表)中包括有商品编号、生产厂商、商品名、型号、单价、数量、总金额、销售年、销售月、销售日、业务员编号等字段。具体设置如下:字段名数据类型说明商品编号 int标识,自动编号,主键生产厂商nvarchar字段大小为20,外键商品名nvarchar字段大小为20型号nvarchar字段大小为20单价money货币型数量numeric数值型总金额money货币型销售年smallint短整型销售月smallin
12、t短整型销售日smallint短整型业务员编号int 整型,外键由关系可得该表属于第三范式。(4) Retreat表(退货表)中包括有商品编号、生产厂商、商品名、型号、单价、数量、总金额、退货年、退货月、退货日、业务员编号等字段。具体设置如下:字段名数据类型说明商品编号 int标识,自动编号,主键生产厂商nvarchar字段大小为20,外键商品名nvarchar字段大小为20型号nvarchar字段大小为20单价money货币型数量numeric数值型总金额money货币型退货年smallint短整型退货月smallint短整型退货日smallint短整型业务员编号int 整型,外键由关系可得
13、该表属于第三范式。(5) Manufacturer表(进货厂商)中包括有厂商编号、厂商名称、法人代表、电话、厂商地址等字段,具体设置如下:字段名数据类型说明厂商编号 int标识,自动编号,主键厂商名称nvarchar唯一约束字段大小为10法人代表nvarchar字段大小为10厂商地址nvarchar字段大小为100由关系可得该表属于第三范式。(6) Uesrdb表(用户表)中包括用户编号、用户名、密码等字段,具体设置如下:字段名数据类型说明用户编号 int标识,自动编号,主键用户名nvarchar字段大小为10密码nvarchar字段大小为1003.2.表之间联系由于个数据表之间有一定的关系,
14、例如,sell表中的业务员编号应属于employee表中的员工编号,因此还需要建立各个数据表之间的关系。单机数据库下的“关系图”“新建数据库关系图”菜单,即可进入各表关系设计。最后各个表的关系如图所示:3.3. SQL命令语句实现相关功能经过前面的系统需求分析和概念结构设计以后,得到数据库逻辑结构。现在就可以在SQL Sever 2000数据库系统中,实现上面设计的数据库逻辑结构。这一步是利用数据库系统中的查询分析器实现的。下面给出穿件这些表格的主要SQL语句。3.3.1.创建数据库sellsystem1Create database sellsystem1onprimary( name=Se
15、llSystem_Data, filename=e:SellSystem_Data.MDF, size=2mb, maxsize=unlimited, filegrowth=10%)log on( name=SellSystem_Data_log, filename=e:SellSystem_log.LDF, size=2mb, maxsize=unlimited, filegrowth=10%)gouse sellsystem1create table userdb(商品编号intidentity(1,1) not null primary key, 用户名 nvarchar(10) nul
16、l, 密码 nvarchar(10) null,)Go用户表的创建视图为:select * from userdbuse sellsystem1create table employee(员工编号intidentity(1,1) not null primary key, 员工姓名 nvarchar(10) null, 员工电话 nvarchar(20) null, 员工地址 nvarchar(100) null, )Go员工表的创建视图为:select * from employee3.3.2.创建系统用户表格userdbuse sellsystem1create table usedb(商
17、品编号intidentity(1,1) not null primary key, 用户名 nvarchar(10) null, 密码 nvarchar(10) null,) go 3.3.3.创建员工基本信息表格employeeuse sellsystem1create table employee(员工编号intidentity(1,1) not null primary key, 员工姓名 nvarchar(10) null, 员工电话 nvarchar(20) null, 员工地址 nvarchar(100) null, )go3.3.4.创建进货厂商信息表格manufactureru
18、se sellsystem1 create table manufacturer(厂商编号 int identity (1,1) not null primary key, 厂商名称 nvarchar(20) null , 法人代表 nvarchar(10) null , 电话 nvarchar(20) null, 厂商地址 nvarchar(100) null, )Go进货厂商表创建视图为:select * from manufacturer3.3.5.创建现存货信息表格goodsuse sellsystem1create table goods(商品编号intidentity(1,1) n
19、ot null primary key, 生产厂商 nvarchar(20) null, 商品名 nvarchar(20) null, 型号 nvarchar(20) null, 单价 money null default(0), 数量 numeric(10,0) null default(0), 总金额 money null, 进货年 smallint null default(datepart(year,getdate(),进货月 smallint null default(datepart(year,getdate(), 进货日 smallint null default(datepar
20、t(day,getdate(), 业务员编号 int null,)Go现存货表创建视图为:select * from goods3.3.6.创建已销售商品信息表格 selluse sellsystem1create table sell(商品编号 intidentity(1,1) not null primary key , 生产厂商 nvarchar(20) null, 商品名 nvarchar(50) null, 型号 nvarchar(20) null, 单价 money null default(0), 数量 int null default(0), 总金额 money null de
21、fault(0), 售货年 smallint null default(datepart(year,getdate(),售货月 smallint null default(datepart(year,getdate(), 售货日 smallint null default(datepart(day,getdate(), 业务员编号 int null, )Go已销售商品表创建视图为:select * from sell3.3.7.创建退货信息表格retreatcreate table retreat(退货编号intidentity(1,1) not null primary key , 厂商 n
22、varchar(20) null, 商品名 nvarchar(20) null, 型号 nvarchar(20) null, 单价 money null default(0), 数量 int null default(0), 总金额 money null default(0), 退货年 smallint null , 退货月 smallint null , 退货日 smallint null , 业务员编号 int null, )Go退货表创建视图为:select * from retreat 3.3.8. 模糊查询employee表中名字的第二个字为铃的员工情况select * from e
23、mployee where 员工姓名 like_铃% use sellsystemselect 生产厂商,商品名,型号,单价,数量,总金额,进货年,进货月,进货日 from goodswhere 生产厂商=诺基亚 3.3.9. 查看各生产商生产的手机当日的总售量select 生产厂商,sum(数量) as 当日该产品售货总量from sellgroup by 生产厂商3.3.10. 查看某一手机产品的售出,进货以及退货情况select distinct g.生产厂商 , s.数量 as 售量,r.数量 as 退货量, g.数量 as 进货量from goods g,sell s,retreat
24、 rwhere s.生产厂商=r.生产厂商 and r.生产厂商=g.生产厂商 and s.生产厂商=西门子3.3.11. 嵌套查询在retreat表中有基字的手机通过此查询得知此手机型号,从而查出在goods表中该手机的所有情况。select生产厂商,商品名,型号,单价数量,总金额,进货年,进货月,进货日from goods where 生产厂商 in (select 生产厂商 from sell where 型号 in(select 型号 from retreat where 生产厂商 like _基_%) 3.3.12. 对制造商标的某一行数据的更新和插入即运用updtae的操作upda
25、te manufacturer set 法人代表=李宁,电话=010-7654321,厂商地址=北京市西城区西城路88号where 厂商名称=诺基亚insert into manufacturervalues(乐讯,周润发,0565-7817121,合肥新华小区)delete from goodswhere 业务员编号=5 and 生产厂商=(select 生产厂商 from sellwhere 型号=8250and 数量=5)3.4创建视图以及对视图进行操作3.4.1.创建视图创建一关于生产商、型号、总进货量的视图,其视图名为jinhuoliang.create view jinhuobia
26、oasselect 生产厂商,型号,sum(数量) as 总进货量from goodsgroup by 生产厂商,型号 select * from jinhuobiao 3.4.2 对新建的视图jinhuobiao41进行的插入操作具体如下 create view jinhuobiao41as select 生产厂商,型号,数量,业务员编号from goods select*from jinhuobiao41 insert into jinhuobiao41(生产厂商,型号,数量,业务员编号)values(乐讯,V3230,45,7)select* from jinhuobiao413.4.3
27、. 对新建的视图进行输出对新建的视图jinhuobiao41进行修改为只为摩托罗拉的进行输出 alter view jinhuobiao41asselect 生产厂商,型号,数量,业务员编号from goods where 生产厂商=摩托罗拉3.5存储过程和触发器的创建3.5.1 创建存储过程 创建一个带有变量查看某一品牌手机的销量,进货量,退货量以及销售总金额,退货总金额,进货总金额的存储过程。use sellsystemgocreate procedure xinxichakan2csmc nvarchar(20)asselect distinct g.生产厂商 , s.数量 as 售量,
28、r.数量 as 退货量, g.数量 as 现存货量,s.总金额 as 销售总金额,r.总金额 as 退货总金额 ,g.总金额 as 现存货总金额from goods g,sell s,retreat rwhere s.生产厂商=r.生产厂商 and r.生产厂商=g.生产厂商 and s.生产厂商=csmcgoexec xinxichakan2 西门子Go3.5.2 创建触发器对触发器的建立,实现对sell表进行插入记录和对retreat表进行插入记录时,现存货表中该产品的数量会自动加或自动减。create trigger t on sellafter updateasbegindeclare
29、 scsc2 nvarchar(20),xh2 nvarchar(50),y smallint,m smallint,d smallint ,b1 int, b2 intselect scsc2=生产厂商,xh2=型号, y=年,m=月,d=日, b1=数量 from insertedselect b2=数量 from deletedif update(数量)BeginUpdate sellSet 总金额=单价*b2update goods set 数量=数量-b1+b2, 总金额=单价*数量 where 生产厂商=scsc2 and 型号=xh2 and 年=y and 月=m and 日=
30、dendendcreate trigger t6 on retreatafter updateasbegindeclare scsc2 nvarchar(20),xh2 nvarchar(50),y smallint,m smallint,d smallint ,b1 int, b2 intselect scsc2=生产厂商,xh2=型号, y=年,m=月,d=日, b1=数量 from insertedselect b2=数量 from deletedif update(数量)BeginUpdate retreatSet 总金额=单价*b2update goods set 数量=数量+b1-
31、b2, 总金额=单价*数量 where 生产厂商=scsc2 and 型号=xh2 and 年=y and 月=m and 日=dend查看诺基亚手机型号为8250在2月26日的现存量情况:select * from goodswhere 生产厂商=诺基亚and 型号=8250and 业务员编号=2后对sell表进行对诺基亚型号为8250手机进行出售,查看goods表Select* from sell where 生产厂商=诺基亚and 型号=8250and 业务员编号=5改变诺基亚手机型号的数量为3,用updtae语句进行更新。update sellset 数量=3where 生产厂商=诺基
32、亚and 型号=8250and 业务员编号=5select * from sellwhere 生产厂商=诺基亚and 型号=8250and 业务员编号=5查看goods表的8250的诺基亚手机在2004年2月26日的信息情况select * from goodswhere 生产厂商=诺基亚and 型号=8250and 业务员编号=2现在在retreat表中退回两部8250的诺基亚手机,先查看retreat表的信息情况。select * from retreatwhere 生产厂商=诺基亚and 型号=8250and 业务员编号=5再查看goods中表的8250的诺基亚手机在2004年2月26日
33、的信息情况select * from goodswhere 生产厂商=诺基亚and 型号=8250and 业务员编号=2四.总结和展望本设计对销售管理做了分析和探讨,认为有必要开发销售管理系统来对商品信息进行数字化管理。这样既可减轻销售厂商工作压力,又可以比较系统地对商品的信息进行管理,跟上国家各部门关于信息化的步伐,使各项管理更加规范化。正是针对上述问题,本设计对销售管理系统的开发过程进行了较为详细的论述。系统的安全性和系统可靠性是系统正常运行的先决条件,是实现所有应用要求的基础。事实证明,尽管使用需求少的非常合理、非常全面、非常先进,而系统没有合适的可靠性和安全性,仍然是一个无用的系统,或
34、是一个无信誉的系统。根据销售服务对象、运行情况及资源约束,应具有安全高效的通信机制,身份认证,权限检查,以解决用户信息系统的安全性、保密性问题,防止信息泄密和对保密信息的非法侵入,这里的系统安全应包括计算机硬件、操作系统及系统信息等方面的安全问题;而系统可靠性应包括系统设备的可靠性、系统软件的可靠性、系统应用软件的可靠性及系统数据的可靠性等方面。为了使开发出来的系统能够满足销售管理工作的需要,本人也对系统进行了测试,测试结果良好,该系统界面友好,数据的添加、修改、删除功能均可实现,并能够完成比较复杂的多条件查询等功能。本设计主要在系统调查研究的基础上对系统进行了系统分析,分析了系统的可行性、明
35、确用户需求;并对数据库进行设计,分析了该系统数据库的结构和数据库安全性措施;根据模块化原理,将系统分为了几大功能模块,并对各部分功能进行了分析;采用结构化程序设计的思想,提出系统的程序设计思路;然后,对本系统的测试和安装进行了分析。在系统设计过程中,我体会到了在设计之前一定要对所设计的系统有较为深刻地了解,并对用户的要求加以认真的分析,并给予分类,对所分类进行功能模块化设计,画出系统数据流程图和功能模块图。这样在进行详细设计时才可以做到有条不紊一步一步地进行。编制一个系统还是有很多可学习的地方,不仅要掌握好相关知识,而且做事要细心、谨慎,这也是将来工作和学习应该注意的地方。总的来说,通过这次课
36、程设计,我也同时学到了技术层面以外的知识,那就是在建立应用程序上的流程:制定出研究方向,收集客户信息,分析客户信息,确定项目,实现分析,提出实现方案,程序编辑,程序调试,程序修改,程序增添等等的步骤。这些都使我认识到建立应用程序不是一件随便的事情,它有一个系统的、严密的、逻辑的工作流程。本系统在对销售的信息管理和相应的人员信息处理方面做了一定的工作,基本实现了商品进销退管理要求的基本功能。由于时间和条件及作者水平有限,系统在设计和功能上尚存一些不足,有待进一步改进和扩充:(1) 在数据的录入、修改以及数据的更新方面需要进一步完善,使其智能化。(2) 系统界面设计的不够完善和美观。 (3) 现行
37、的商品进销退 管理系统各功能模块又进一步扩展和完善的空间,但由于时间有限在本系统中做的还不够,比如说可以增加业务员和管理员互动的功能,业务员提供最新的客户信息,以便管理员最快的速度作出响应,从而提高工作效率。参考文献1刘云生.数据库系统概论.武汉:高等教育出版社,20022王珊.数据库系统概论.北京:华中偶那个理工大学出版社,20023程学先.SQL Server 数据库开发入门与范例解析.广州:机械出版社,2004.34程学先.管理信息系统.北京:清华大学出版社,20085付海东.数据库原理与技术.广州:中国水利水电出版社,2009.36张晓辉.SQL server 2000管理及应用系统开发.北京:人民邮电出版社,2005