汽车销售管理系统sql课程设计.docx
- 文档编号:25442629
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:18
- 大小:325.95KB
汽车销售管理系统sql课程设计.docx
《汽车销售管理系统sql课程设计.docx》由会员分享,可在线阅读,更多相关《汽车销售管理系统sql课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
汽车销售管理系统sql课程设计
一、概述:
1.1目的及要求:
本系统是为解决汽车销售公司的管理问题而设计。
随着经济的发展和国内汽车市场的不断扩大,某汽车销售公司定单成倍增加,各项业务更加细化,各部门分工更加明确,这就要求要有一个高效、可靠的数据库系统来实现该公司的日常事务的管理,而目前的人工管理方式显然已是不符合现代企业的管理要求。
基于整体考虑,本次课程设计任务就是设计一个管理系统,应用到4S店日常的销售和管理工作中,可以做到汽车信息的规范管理、快速查询和科学统计,利用计算机来代替人工操作,减轻了员工的劳动强度,提高了劳动质量和效率,减少了错误的发生。
本次设计,从需求分析,概念设计,逻辑设计,物理设计,到数据库的建立、运行,再到数据库的安全维护等各个方面进行了详细的分析设计。
并且值得一提的是,我认真分析了企业的业务需求,公司的主要职责和主要结构等信息,从而保证了设计出比较符合公司需要的管理系统。
1.2系统环境:
SQLserver2000
Windows7操作系统
二、需求分析:
2.1需求功能的分析
本系统的设计模拟一般的汽车4S销售管理系统内容,经过系统分析和调研,本系统主要包括的信息有4类:
车辆信息、员工信息、客户信息以及精品管理。
在传统的销售管理工作中,往往是用人工清点的方式来掌握仓库中的汽车商品、使用手工记账的方式来掌握商品的进货和销售情况。
这种方式在数量较少、库存变换少的情况下,不失为一种好的方法。
但是,随着每天所发生的进货和销售情况纷繁复杂,如果借助人工来记录和管理,将会耗费大量的时间,而且容易出现错误,造成管理上的混乱。
具体而言,4S店汽车销售管理系统需要实现以下功能
2.1.1能够对4S店拥有的各种汽车的基础信息进行维护和管理
汽车的基础信息包括:
车辆型号、基本信息、进店日期、出店日期、供货商、库存数量等。
系统需要能够对汽车信息进行添加、修改和删除,也可以以视图的方式显示出现汽车的库存数量的比较。
2.1.2跟踪各个员工的销售业绩
员工的信息包括员工姓名、性别、联系电话、职务、薪水、月销售额等。
系统还需要能够对员工信息进行添加、修改和删除,也可以按照一定的条件来进行查询。
2.1.3跟踪各种汽车的销售信息
汽车的销售信息包括顺车辆型号、汽车名称、顾客名称、购买数量、售出价格、销售日期、备注等。
系统需要能够对销售信息进行添加、修改和删除,也可以按照一定的条件来进行查询。
2.2需求模块分析:
根据需求分析的结果,本系统主要划分为4个子模块:
车辆信息、员工信息、客户信息以及精品理。
汽车销售管理系统不同类型的用户在系统中有不同的权限,主要有以下两种用户:
会计:
作为本系统的管理人员,会计可以使用本系统的所有功能,包括对用户信息、汽车信息、进货信息、销售信息等进行管理,添加,需改删除等功能。
销售人员:
4S店的销售人员负责汽车的日常销售工作,需要掌握各种汽车的各次的销售情况,其只能对本系统的汽车销售信息进行阅读,来对每次汽车的销售情况进行记录;同时,作为顾客,可以通过员工来对本4S店内的车辆信息进行了解,从而对该店有一个大致的评价,更好地为自己的购车等做一个更合理的参考等。
三、数据库系统设计
3.1概念结构设计:
整个系统的结构模块如图所示:
3.2数据逻辑结构设计:
3.2.1车辆信息管理:
用于管理汽车销售系统中的各种类型的车辆。
只有具有管理人员身份的人才能使用本模块,管理人员可以添加、或者删除相应的车辆信息,可以根据实际情况及时的更新系统中的车辆信息,使车辆的进出都可以得到反应
3.2.2员工信息管理:
用于管理本4s店的员工的基本信息,经理作为高级的管理人员,可以通过本模块的信息统计对于本店员工的表现加以具体的分析、判断,对于提成的评判有一定的参考价值。
同时,员工自身也可以通过本模块来查询自己某一阶段的业绩,对比他人的业绩,就会产生很好的竞争意识,有利于员工之间的相互学习和交流,促进本店的销售业绩;同样,系统的管理员可以对员工的而信息做添加、更新和删除等基本的操作。
3.2.3客户信息管理:
由于本模块设计到客户的个人信息,所以,只有具有管理人员身份的人才能使用本模块。
其中,客户的基本信息包括客户姓名、姓名、年龄、联系电话、车辆型号、购车时间、员工姓名、付款方式、是否领车等最基本的信息。
管理员通过了解到的客户信息,可以对客户的信息做及时的插入、修改和删除等操作,使管理更加的便捷。
3.2.4精品管理:
随着汽车附属品的迅速发展,越来越多的额客户并不仅仅满足于对于车辆本身的享受,而是追求更加汽车的而精品配置,所以,精品管理模块就是为了迎合这类用户而设计的额。
一般用户对于该模块只具有读的权限,管理员可以根据具体的销售情况对本模块的而数据进行及时的操作,使模块的数据得以及时的更新。
其基本代码如下:
3.3总代码
createdatabase汽车4S店销售管理
go
use汽车4S店销售管理
createtable车辆信息表
(车辆型号varchar(20)primarykeynotnull,
基本信息varchar(30),
进店日期datetimenotnull,
出店日期datetimenotnull,
存量varchar(20)notnull,
供货商varchar(20)
)
insert车辆信息表values('宝马X1','2010款sDrive18i豪华型','2010.1.1','2010.2.1','12','广州欧亿汽配贸易')
insert车辆信息表values('宝马X3','2011款sDrive28领先型','2011.3.1','2011.9.1','13','宝马亿峰分公司')
insert车辆信息表values('宝马X5','2011款sDrive35领先型','2011.6.1','2011.7.1','12','国爱汽配')
createtable精品管理表
(
精品名称varchar(10)notnull,
进货价varchar(10)notnull,
售价varchar(10)notnull,
客户姓名varchar(10)notnull,
供货商varchar(20)notnull,
存量varchar(100)notnull
)
insert精品管理表values('太阳膜','600','1250','许博','京东商城','24')
insert精品管理表values('汽车装甲','2250','5000','成健','糯米当当','15')
insert精品管理表values('智能钥匙','400','800','代丽萍','上海国际汽车配件商城','100')
createtable客户信息表
(客户姓名varchar(10)notnull,
性别nchar
(2)check(性别in('男','女'))notnull,
年龄integercheck(年龄between1and100),
联系电话varchar(30)check(联系电话like'1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')notnull,
车辆型号varchar(20)references车辆信息表(车辆型号)notnull,
购车时间datetimeNOTNULL,
员工姓名varchar(10)notnull,
付款方式varchar(10)check(付款方式in('全额','预付'))notnull,
是否领车varchar(10)check(是否领车in('是','否'))
)
insert客户信息表values('许博','男','26','','宝马X1','2010.2.1','刘平','全额','是')
insert客户信息表values('成健','男','43','','宝马X3','2011.9.1','宋强','全额','是')
insert客户信息表values('代丽萍','女','39','','宝马X5','2011.7.1','张佳丽','预付','否')
createtrigger插入新用户
on客户信息表
afterinsert
as
print'欢迎进入本公司'
insert客户信息表values('萍','女','39','','宝马X5','2011.7.1','张佳丽','预付','否')
createtrigger删除预订用户
on客户信息表
afterdelete
as
print'期待您选择本公司'
delete客户信息表where客户姓名='萍'
createtable员工信息表
(
员工姓名varchar(10)notnull,
性别nchar
(1)check(性别in('男','女'))notnull,
电话varchar(11)notnull,
职务nchar(20)notnull,
薪水char(10)notnull,
月销售额char(100)notnull
)
insert员工信息表values('刘平','男','','经理','4500','2')
insert员工信息表values('宋强','男','','员工','3000','1')
insert员工信息表values('张丽','女','','员工','3000','5')
insert员工信息表values('王潇','男','','职员','2500','2')
update员工信息表set电话=''where员工姓名='王潇'
delete员工信息表where员工姓名='王潇'
createview车辆信息视图as
select*
from车辆信息表
createview精品管理表视图as
select*
from精品管理表
createview员工信息视图as
select*
from员工信息表
createview精品销售管理视图as
select精品管理表.精品名称,售价,
客户信息表.客户姓名,联系电话
from精品管理表,客户信息表
where客户信息表.客户姓名=精品管理表.客户姓名
createview销售管理视图as
select车辆信息表.车辆型号,进店日期,出店日期,
客户信息表.客户姓名,员工姓名,付款方式
from车辆信息表,客户信息表
where车辆信息表.车辆型号=客户信息表.车辆型号
createprocedure客户信息查询
@客户姓名varchar(15)as
select客户姓名,车辆型号,进店日期,出店日期,员工姓名,付款方式
from销售管理视图where客户姓名=@客户姓名
createprocedure[某车辆信息]
@车辆型号varchar(15)as
select车辆型号,基本信息,进店日期,出店日期,存量,供货商
from车辆信息视图
where车辆型号=@车辆型号
alterprocedure[某车辆信息]
@车辆型号varchar(15)as
select车辆型号,基本信息,进店日期,出店日期,存量,供货商
from车辆信息视图
where车辆型号=@车辆型号and存量>=13
dropprocedure某车辆信息
createprocedureinsert_车辆信息表
(@车辆型号_1varchar(20),
@基本信息_2varchar(30),
@进店日期_3datetime,
@出店日期_4datetime,
@存量_5varchar(20),
@供货商_6varchar(20))
asinsertinto车辆信息表
(车辆型号,基本信息,进店日期,出店日期,存量,供货商)
values
(@车辆型号_1
@基本信息_2,
@进店日期_3,
@出店日期_4,
@存量_5,
@供货商_6)
createprocedure[某员工信息]
@员工姓名varchar(10)as
select*from员工信息视图
where员工姓名=@员工姓名
alterprocedure某员工信息
as
select员工姓名,电话,月销售额from员工信息表
where月销售额>=2
dropprocedure某客户信息
createprocedureinsert_员工信息表(
@员工姓名_1varchar(10),
@性别_2nchar
(1),
@电话_3varchar(11),
@职务_4nchar(20),
@薪水_5char(10),
@月销售额_6char(100))
asinsertinto员工信息表(员工姓名,性别,电话,职务,薪水,月销售额)
values(@员工姓名_1,@性别_2,@电话_3,@职务_4,@薪水_5,@月销售额_6)
execsp_addlogin'销售人员','888','汽车4S店销售管理'
execsp_grantdbaccess'销售人员','读者'
execsp_addrolemember'db_datareader','读者'
execsp_addlogin'会计','123456','汽车4S店销售管理'
execsp_grantdbaccess'会计','管理员'
execsp_addrolemember'db_owner','管理员'
3.4表之间关系图:
四、系统实现:
1、销售管理
为了查看销售情况,我使用视图将客户信息表和车辆表进行连接建立了销售管理视图
createview销售管理视图as
select车辆信息表.车辆型号,进店日期,出店日期,
客户信息表.客户姓名,员工姓名,付款方式
from车辆信息表,客户信息
where车辆信息表.车辆型号=客户信息表.车辆型号
输出的结果图
将客户详细的购车情况,车辆情况进行输出,在使用存储过程有以下的优点:
存储过程的能力大大增强了SQL语言的功能和灵活性。
存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。
可保证数据的安全性和完整性。
通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。
通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。
再运行存储过程前,数据库已对其进行了语法和句法分析,并给出了优化执行方案。
这种已经编译好的过程可极大地改善SQL语句的性能。
由于执行SQL语句的大部分工作已经完成,所以存储过程能以极快的速度执行。
可以降低网络的通信量。
使体现企业规则的运算程序放入数据库服务器中,以便:
集中控制。
当企业规则发生变化时在服务器中改变存储过程即可,无须修改任何应用程序。
企业规则的特点是要经常变化,如果把体现企业规则的运算程序放入应用程序中,则当企业规则发生变化时,就需要修改应用程序工作量非常之大(修改、发行和安装应用程序)。
如果把体现企业规则的运算放入存储过程中,则当企业规则发生变化时,只要修改存储过程就可以了,应用程序无须任何变化。
2、SQL身份验证的用户账户新建及权限设置
汽车销售管理系统不同类型的用户在系统中有不同的权限,主要有以下2种用户:
(1)管理人员本系统的管理人员可以使用本系统的所有功能,包括用户管理、汽车信息管理、进货信息管理和销售信息管理功能。
execsp_addlogin'会计','123456’,’汽车4s店销售管理’
建立SQL身份验证的用户账户会计,密码:
123456,
execsp_grantdbaccess'会计','管理员'
给用户账户赋予数据库用户名称管理员
execsp_addrolemember'db_owner','管理员'
给管理员角色db_owner可以使用本系统的所有功能
(2)销售人员销售人员负责汽车的日常销售工作,需要掌握各种汽车的各次的销售情况。
对每次汽车的销售情况进行记录。
execsp_addlogin'销售人员','888','汽车4s店销售管理'
建立SQL身份验证的用户账户销售人员,密码888
execsp_grantdbaccess'销售人员','读者'
给用户账户赋予数据库用户名称读者
execsp_addrolemember'db_datareader','读者'
给管理员角色db_datareader.权限:
可查询查询本数据库中所有表、视图、内嵌表值函数的数据,执行所有的存储过程。
成功登陆窗口
3、数据库的备份与还原
在编辑数据库时,掌握数据库的备份恢复技术是很关键的。
3.1备份
打开企业管理器,在你的数据库上点右键,选输入你要备份的文件名及路径择“所有任务”-“备份数据库”,如果“备份到”里面有项目就把它删除,然后点“添加”,(可以浏览选择),然后点确定,这样数据库就备份好了(备份之前保证没有用别的程序打开数据库)。
备份好的文件是.BAK文件
3.2还原
打开企业管理器,新建数据库,然后在新建的数据库上点右键,选择“所有任务”-“还原数据库”,还原方式选择“从设备”,然后点“选择设备”,再点“添加”,找到COPY的那个文件,点“确定”,再点“确定”,再点“确定”,数据库就还原好了。
注意的是看好将要还原数据库的路径是否存在,否则无法还原
还原如果不是新建的数据库,而是在已有的数据库上还原,那么最好在最后一次点“确定”之前,在“选项”中打开“在现有数据库上强制还原”,以免引起不必要的问题。
五、结论及个人总结
结论
创建销售管理视图成功。
创建客户信息查询的存储过程成功,成功查询到许博的客户信息。
创建SQL身份验证的用户账户成功,成功用SQL账户销售人员及会计登入。
并成功赋予权限
成功地备份数据库,并将它移到移动到硬盘,然后成功在其他服务器上还原。
个人总结
在这次sql的课程设计中,我受益匪浅。
经过我一周利用书和电脑操作上的结合,再加上老师的指导,我对于sql的理解更加透彻。
在设计代码时,我总会发生语法错误,后来我发现都是一些细小的错误如中英文未切换。
在建立视图时,要注意每个列所对应的列名要相同,并要看清个表之间的联系在提取列达到所要达到的作用。
在建立存储过程建立存储过程对客户的销售信息的查询,我发现存储过程在查询时起到快捷方便作用,很快地反映所要查询单内容。
除了知识上的获得,在与人合作上,在小组内我们不仅需要之间的配合,更需之间的讨论,在设计数据库之前,我们首先在销售管理模块上的分配进行了讨论,让我们的设计方向得到了明确,并很合理的分配了每个人的内容,使我们可以更有目标的完成自己任务
六、参考文献
1.《新电脑课堂 SQL Server 编程篇》 作者:
本书编委会 编著 出版社:
电子工业大学出版社
2.《SQL Server2000 中文版 入门与提高》编著:
周绪 管丽娜 白海波 出版社:
清华大学出版社
3.《SQL Server 2000 数据库教程》 主编:
唐学忠、 副主编:
费贤举 腾刚 胡智喜
4.XX文库 《数据库课程设计(学生成绩管理系统)》
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汽车 销售 管理 系统 sql 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)