资源描述
销售管理系统SQL课程设计
21
2020年4月19日
文档仅供参考,不当之处,请联系改正。
《数据库课程设计》报告
销售管理系统
学生姓名: 肖 芳 忠
学生班级: 1 0 4 1 0 1 1 1
学生学号: 1 0 4 1 0 1 1 1 3 7
指导教师: 刘 爱 华
6 月 13日
设计目的
数据库系统原理课程设计是数据库系统原理实践环节的极为重要的一部分。
1、 培养学生能够应用数据库系统原理在需求分析的基础上对系统进行概念设计,学会设计局部ER,全局ER。
2、 培养学生能够应用数据库系统原理在概念设计的基础上应用关系规范化理论对系统进行逻辑设计,学会在ER图基础上设计出易于查询和操作的合理的规范化关系模型。
3、 培养学生能够应用SQL语言对所设计的规范化关系模型进行物理设计,以保证数据库系统的数据完整性,安全性,一致性。
4、 数据库实施:
建立数据库结构(建库、建立个基本表、视图、索引)
将原始数据状图数据库(insert语句)。
课程设计内容
1:需求分析
本系统必须具有以下功能:
(1) 商品录入:根据超巿业务特点制定相关功能,能够经过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法能够充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。
(2)收银业务:经过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。。
(5)进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),能够避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。
(6)销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。
(7)库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。
(8)人员管理: 员工、会员、供货商、厂商等基本信息登记管理。 员工操作权限管理。 客户销售权限管理
2:概念结构设计
2.1确定实体之间的联系
m n
图1 顾客与商品E-R图(多对多的关系)
供货商名称
供货商地址
商品名称
单 价
供货商电话
库存量
商 品
供货
供货商
供货商号
供货日期
供货数量
供货编号
n
m
商品编号百年好
图2:商品与供货商E-R图(多对多的关系)
库存量
商品名称
商品编号
商 品
单 价
条形码
库 存
m
图3:商品与仓库E-R图(多对多的关系)
2.2 初步系统R-R 图
顾客姓名
顾客编号
顾客类型
顾客密码密码
顾客
销售金额
m
购买
销售数量
购买日期
商品类别
供货日期
供货数量
n
供货
商品编号
商品
n
商品名称
供货编号
m
仓库
仓库编号
进货单价
库存
n
最小库存
v
售货单价
库存量
上架数量
商品状态
图3.2 E-R图
系统ER图说明
1) 商店中的所有顾客能够销售多种商品,每种商品可由不同顾客销售;
2) 每个顾客能够购买多种商品,不同商品可由不同顾客购买;
3) 每个供货商能够供应多种不同商品,每种商品可由多个供应商供应。
3:逻辑结构设计
3.1系统数据库表结构
商品信息表
字段代码
字段类型
长度
字段值约束
主键
商品编号
char
10
Not null
主
商品名称
Varchar
50
Not null
条形码
Varchar
50
Not null
单价
Money
Not null
顾客表(User)
字段代码
字段类型
长度
字段值约束
主键
顾客编号
varchar
10
Not null
主
顾客名称
Varchar
25
Not null
顾客密码
Varchar
50
Not null
顾客类型
Int
Not null
购买表
字段代码
字段类型
长度
字段值约束
主键
流水账号
char
10
Not null
商品编号
char
10
Not null
主
购买日期
Datetime
Not null
销售数量
Int
4
Not null
销售金额
Money
Not null
顾客编号
Varchar
10
Not null
主
供货表(Support)
字段代码
字段类型
长度
字段值约束
主/键
供货日期
Varchar
10
Not null
供货数量
varchar
50
Not null
供货编号
varchar
10
Not null
主
商品编号
char
10
Not null
主
供货商号
datetime
Not null
供货商表(Provide)
字段代码
字段类型
长度
字段值约束
主键
供货商号
varchar
10
Not null
主
供货商名称
Varchar
50
Not null
供货商地址
Varchar
250
Not null
供货商电话
Varchar
25
Not null
仓库表(Provide)
字段代码
字段类型
长度
字段值约束
主键
仓库编号
varchar
10
Not null
主
仓库名称
Varchar
10
Not null
仓库地址
Varchar
10
库存表
字段代码
字段类型
长度
字段值约束
主键
库存量
varchar
10
Not null
商品编号
char
10
Not null
主
仓库编号
varchar
10
Not null
主
4:数据库系统实现
4.1 建库
create database SuperMarketdb
use SuperMarketdb
4.2建表
①创立商品信息表
CREATE TABLE 商品信息表(
商品编号 char(10) ,
商品名称 varchar(50) NOT NULL ,
单价 money NOT NULL ,
条形码 char (20) Unique NOT NULL ,
PRIMARY KEY(商品编号))
②创立供应商表
CREATE TABLE 供货商表 (
供货商号 varchar (10) ,
供货商名称 varchar(50) NOT NULL ,
供货商地址 varchar(250) NULL ,
供货商电话 varchar(25) NULL,
PRIMARY KEY(供货商号))
③创立供货表
CREATE TABLE 供货表
(
供货商号 varchar(10) not null,
商品编号 char(10) NOT NULL ,
供货编号 varchar(10) NULL ,
供货数量 varchar(50) null,
供货时间 datetime null,
PRIMARY KEY(供货商号,商品编号),
FOREIGN KEY (供货商号) REFERENCES 供货商表(供货商号),
FOREIGN KEY (商品编号) REFERENCES 商品信息表(商品编号))
④创立顾客表
CREATE TABLE 顾客表 (
顾客编号 varchar(10) ,
顾客名称 varchar(25) NULL ,
顾客密码 varchar(50) NOT NULL ,
顾客类型 int NULL ,
PRIMARY KEY(顾客编号))
⑤创立购买表
CREATE TABLE 购买表(
流水账号 char(10) not null ,
商品编号 char(10) NOT NULL ,
购买日期 datetime NOT NULL ,
销售数量 int NOT NULL,
销售金额 money NOT NULL,
顾客编号 varchar (10) not null,
PRIMARY KEY(商品编号,顾客编号),
FOREIGN KEY (顾客编号) REFERENCES 顾客表(顾客编号),
FOREIGN KEY (商品编号) REFERENCES 商品信息表(商品编号));
⑥创立仓库表
CREATE TABLE 仓库表(
仓库编号 varchar(10) not NULL,
仓库名称 varchar(10)NULL,
仓库地址 varchar(10)NULL,
PRIMARY KEY(仓库编号))
⑦创立库存表
CREATE TABLE 库存表(
库存量 varchar(10)NULL,
商品编号 char(10)not NULL,
仓库编号 varchar(10)not NULL,
PRIMARY KEY(仓库编号,商品编号),
FOREIGN KEY (仓库编号) REFERENCES 仓库表(仓库编号),
FOREIGN KEY (商品编号) REFERENCES 商品信息表(商品编号))
4.3 表信息插入
①商品信息表插入语句
insert into 商品信息表
(商品编号,商品名称,单价,条形码)
values
('001', '铅笔', '2', '1011122');
insert into商品信息表
(商品编号,商品名称,单价,条形码)
values
('002', '直尺', '1', '1011123');
insert into 商品信息表
(商品编号,商品名称,单价,条形码)
values
('003', '橡皮', '1', '1011124')
insert into 商品信息表
(商品编号,商品名称,单价,条形码)
values
('004', '圆规', '4', '1011125')
②供货商表插入语句
insert into 供货商表
(供货商号,供货商名称,供货商地址,供货商电话)
values
('001', '光电有限公司', '羊城路', '', '18274634' )
insert into 供货商表
(供货商号,供货商名称,供货商地址,供货商电话)
values
('002', '生产有限公司', '学府路', '', '12874785' )
insert into 供货商表
(供货商号,供货商名称,供货商地址,供货商电话)
values
('003', '真诚有限公司', '赣东大道, '', '13873478' )
③供货表插入语句
insert into 供货表
(供货商号,商品编号,供货编号,供货数量,供货时间)
values
('002', '003', '1013', '678 ',' -2-1 19:00:00')
insert into 供货表
(供货商号,商品编号,供货编号,供货数量,供货时间)
values
('003', '002', '1011 ', '100', ', -2-5 12:00:00')
insert into 供货表
(供货商号,商品编号,供货编号,供货数量,供货时间)
values
('001', '004', '1012 ', '1000', ' -2-1 19:00:00')
④顾客表插入语句
insert into 顾客表
(顾客编号,顾客名称,顾客密码,顾客类型)
values
('089', '章牟', '123' )
insert into 顾客表
(顾客编号,顾客名称,顾客密码,顾客类型)
values
('099', '李丽', '456' )
insert into 顾客表
(顾客编号,顾客名称,顾客密码,顾客类型)
values
('010', '张章', '789' )
⑤购买表插入语句
insert into 购买表
(流水账号,商品编号,购买日期,销售数量,销售金额,顾客编号)
values
('1111125', '001', ' -3-6 ','100', '200 ', '089 ')
insert into 购买表
(流水账号,商品编号,购买日期,销售数量,销售金额,顾客编号)
values
('1111128', '003', ' -1-2 ','14', '14 ', '099 ')
insert into 购买表
(流水账号,商品编号,购买日期,销售数量,销售金额,顾客编号)
values
('1111166', '004', ' -3-8','70', '280 ', '010')
⑥仓库表插入语句、
insert into 仓库表
(仓库编号,仓库名称,仓库地址,)
values
(' ', '一号仓库', '羊城路')
insert into 仓库表
(仓库编号,仓库名称,仓库地址,)
values
(' ', '二号仓库', '学府路')
insert into 仓库表
(仓库编号,仓库名称,仓库地址,)
values
(' ', '三号仓库', '赣东大道')
⑦库存表插入语句
insert into 库存表
(库存量,商品编号,仓库编号)
values
(' ', '002', ' ')
insert into 库存表
(库存量,商品编号,仓库编号)
values
('5999', '001', ' ')
insert into 库存表
(库存量,商品编号,仓库编号)
values
('2888', '004', ' ')
4.4 创 建 视 图
①创立销售情况视图
create view 销售情况
as
SELECT 商品名称,条形码, 单价, 销售数量, 销售金额,购买日期
from 商品信息表,购买表
where 商品信息表.商品编号=购买表.商品编号
②查询销售情况视图
select *
from 销售情况
③创立供货情况视图
create view 供货情况
as
SELECT 商品名称,单价, 供货数量,供货时间
from 商品信息表,供货表
where 商品信息表.商品编号=供货表.商品编号
④查询供货情况视图
select *
from 供货情况
4.5创 建 索 引
create index 商品123 on 商品信息表 (商品编号)
create index 数量12345 on 购买表(销售数量)
4:实验总结
经过此次数据库的课程设计,真正达到了学与用的结合,增强了对数据库方面应用的理解,对自己今后参与开发数据库系统积累了不少经验,在实验过程中,从建立数据开始,对数据库设计理念及思想上有更高的认识,从需求分析,到概念设计和逻辑设计,E-R图的表示,数据字典的创立,懂得了不少有关数据库开发过程中的知识,在实验中建表,及其关系模式,关系代数的建立及理解,将SQL语言的查询语句用得淋漓尽致,增强了自己在数据库中应用SQL语言的灵活性,其中包括,插入、删除、修改、查询,牵涉表和表之间的联系,主键与外主键的定义,约束项的设置,使逻辑更严密。
在学习过程中,我也上网查了不少资料,也看了一些别人设计的小型超市信息系统的设计报告,学以致用,自我创新,独立完成了这份自己的报告,从中从学到用,从用又到学,不断修改,系统更新。虽然不能达到完善系统,但也做到了尽善尽美,加强理论学习对完善系统会有很多帮助,知识是无限的,我以后还会在这个领域不断的进行探索,掌握更多的知识。
展开阅读全文