资源描述
小型超市管理系统开发文档
28
2020年5月29日
文档仅供参考
SQL数据库课程设计
题目:小型自选商场综合管理系统
组员:孙柯 张磊 陈康
组长:孙柯
班级:07A051班
系科:信息科学系
目录
1、项目计划 张磊负责撰写
1.1系统开发目的
1.2项目确立
1.3应用范围
1.4参考资料
2、项目需求分析 张磊负责撰写
2.1系统功能
2.2数据流图
2.3用户类型与职能
2.4系统开发步骤
2.5概要设计文档
2.6系统环境需求
3、逻辑设计文档 陈康负责撰写
4、物理设计文档 孙柯负责撰写
5、小结
1、项目计划
1.1系统开发目的
SQL课程设计,要求针对小型超市的特点,开发数据库管理系统。
1.2项目确立
为了完成SQL课程设计,我们针对超市的特点,分析超市现在面临的问题,我们将开发以下系统:前台销售系统、后台管理系统(其中这两个子系统又包含其它一些子功能)。
1.3应用范围
本系统适应于各种小型的超市。
1.4 参考资料
<SQL Server 实用教程>范立南编 清华大学出版社
<轻松搞定 SQL Server 程序设计>Rebecca M.Riordan编
部分网络文章
2、项目需求分析
2.1系统功能
(1)零售管理系统,本系统必须具有以下功能:
Ø 商品录入:根据超巿业务特点制定相关功能,能够经过输入唯一编号商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法能够充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。
Ø 收银业务:经过输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。
(2)后台管理系统,本系统必须具备以下功能
Ø 进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),能够避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。
Ø 销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。打印商品销售日、月、年报表。
Ø 库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。
Ø 人员管理: 员工、供货商、厂商等基本信息登记管理。 员工操作权限管理。 客户销售权限管理。
(3)系统结构
系统总体结构
小型超市零售管理系统
前台销售系统
后台管理系统
商品录入
收银业务
进货管理
销售管理
库存管理
人员管理
收银业务
交易总额计算
打印交易清单
功能描述:收银业务子系统能计算交易总额,打印交易清单,并根据促销情况打折。
进货管理
自动制定进货计划
自动入库登记
查询打印计划
进货与入库记录
功能描述:进货管理子系统能够根据库存自动指定进货计划,进货时自动登记,以及提供查询和打印计划进货与入库记录的功能。
销售管理
商品销售控制
查询打印销售情况
功能描述:销售管理子系统能够控制某商品是否允许销售,查询每种商品的销售情况并产生年、月、日报表。
查询库存明细记录
库存状态自动告警提示
库存管理
自动盘点计算
功能描述:库存管理子系统提供查询库存明细记录的基本功能,并根据库存的状态报警,以及自动盘点计算。
人员管理
基本信息登记管理
员工操作权限管理提示
员工信息查询管理
功能描述:人员管理子系统提供基本信息登记管理,员工操作权限管理,员工信息查询管理的功能。
2.2、流程图
前台管理系统
顶层DFD图
第0层DFD图
第1层DFD图
2.3、户类型与职能
(1)、员工(营业员):
Ø 输入商品到购买清单
Ø 操作软件计算交易总金额
Ø 操作软件输出交易清单
(2)、:超市经理
Ø 操作软件录入商品,供货商,厂商
Ø 操作软件制定进货计划
Ø 查询打印计划进货与入库记录
Ø 操作软件控制商品销售与否
Ø 查询打印销售情况
Ø 查询库存明细记录
Ø 根据软件发出的库存告警进行入货
Ø 操作软件进行盘点计算
(3)、总经理:
Ø 基本信息登记管理
Ø 员工操作权限管理
Ø 客户销售权限管理
2.4、系统开发步骤
Ø 确定参与者和相关的用况
Ø 为每个用况设计过程
Ø 建立顺序图,确定每个脚本中对象的协作
Ø 创立类,确定脚本中的对象
Ø 设计, 编码, 测试, 集成类
Ø 为过程编写系统测试案例
Ø 运行测试案例,检验系统
2.4、超市销售系统概念设计文档
(1)、系统ER图
允许销售
允许打折
商品
用户姓名
用户号
用户类型
n
n
供货
购买日期
消费金额
厂商
厂商ID
厂商名称
厂商地址
厂商电话
供货商名称
m
n
生产
m
1
用户
用户ID
用户密码
m
供货金额
供货日期
销售日期
供货商电话
供货商地址
供货商ID
供货商
销售
销售ID
商品ID
商品名称
价格
促销价格
消费
(2)、系统ER图说明
1) 商店中的所有用户(员工)能够销售多种商品,每种商品可由不同用户(员工)销售;
2) 每个顾客能够购买多种商品,不同商品可由不同顾客购买;
3) 每个供货商能够供应多种不同商品,每种商品可由多个供应商供应。
(3)、视图设计
1) 交易视图(v_Dealing)——用于查询交易情况的视图;
2) 计划进货视图(v_PlanStock)——用于查询进货计划的视图;
3) 销售视图(v_Sale)——用于查询销售明细记录的视图;
4) 入库视图(v_Stock)——用于查询入库情况的视图。
2.5、系统环境需求
软件环境
安装SQL Server 的服务器版本,
安装了VB等可视化开发工具软件,
安装windows 服务器版本。
3、逻辑设计文档
(1)、系统关系模型
a) 商品信息表(商品编号,商品名称,价格,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)
b) 用户表(用户编号,用户名称,用户密码,用户类型)
c) 销售表(销售编号,商品编号,销售数量,销售金额,销售日期)
d) 交易表(交易编号,用户名称,交易金额,交易日期)
e) 进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)
f) 供货商表(供货商编号,供货商名称,供货商地址,供货商电话)
g) 厂商表(厂商编号,厂商名称,厂商地址,厂商电话)
(2)、系统数据库表结构
数据库表索引
表名
中文名
MerchInfo
商品信息表
User1
用户表
Sale
销售表
Dealing
交易表
Stock
进货入库表
Provide
供货商表
Factory
厂商表
商品信息表(MerchInfo)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MerchID
varchar
10
P
Not null
商品编号
MerchName
Varchar
50
Not null
商品名称
MerchPrice
Money
4
Not null
价格
MerchNum
Int
4
Not null
库存数量
CautionNum
Int
4
Not null
库存报警数量
PlanNum
Int
4
null
计划进货数
SalesProPrice
Money
4
促销价格
SalesProDateS
Datetime
8
促销起日期
SalesProDateE
Datetime
8
促销止日期
AllowAbate
Int
4
Not null
允许打折
AllowSale
Int
4
Not null
允许销售
FactoryID
Varchar
10
F
Not null
厂商编号
ProvideID
Varchar
10
F
Not null
供货商编号
用户表(User1)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
UserID
varchar
10
P
Not null
用户编号
UserName
Varchar
25
Not null
用户名称
UserPW
Varchar
50
Not null
用户密码
UserStyle
Int
4
Not null
用户类型
销售表(Sale)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
SaleID
Varchar
10
P
Not null
销售编号
MerChID
Varchar
10
F
Not null
商品编号
SaleDate
Datetime
8
Not null
销售日期
SaleNum
Int
4
Not null
销售数量
SalePrice
Money
4
Not null
销售单额
交易表(Dealing)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
DealingID
Varchar
10
P
Not null
交易编号
DealingPrice
Money
4
Not null
交易金额
DealingDate
Money
4
Not null
交易日期
UserName
Varchar
10
F
Not null
用户名称
入库纪录表(Stock)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
StockID
Varchar
10
P
Not null
入库编号
MerchID
Varchar
10
F
Not null
入库商品编号
MerchNum
Int
4
Not null
入库数量
MerchPrice
Money
4
Not null
单额
TotalPrice
Money
4
Not null
总额
StockDate
Datetime
8
Datetime
入库日期
PlanDate
Datetime
8
Datetime
计划进货日期
StockState
Int
4
Not null
入库状态
供货商表(Provide)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
ProvideID
varchar
10
P
Not null
供货商编号
ProvideName
Varchar
50
Not null
供货商名称
ProvideAddress
Varchar
250
供货商地址
ProvidePhone
Varchar
25
供货商电话
厂商表(Provide)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
FactoryID
varchar
10
P
Not null
厂商编号
FactoryName
Varchar
50
Not null
厂商名称
FactoryAddress
Varchar
250
厂商地址
FactoryPhone
Varchar
25
厂商电话
4、物理设计文档
/*----------创立数据库----------*/
create database SuperMarketdb
on primary
(
name=SuperMarketdb,
filename='d:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf',
size=100MB,
maxsize=200MB,
filegrowth=20MB
)
log on
(
name=SuperMarketlog,
filename='d:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf',
size=60MB,
maxsize=200MB,
filegrowth=20MB
)
go
/*----------创立基本表----------*/
use [SuperMarketdb]
go
/*创立交易表*/
CREATE TABLE Dealing (
DealingID int identity(1,1) Primary key ,
DealingDate datetime NOT NULL ,
DealingPrice money NOT NULL ,
UserName varchar(25) NULL ,
MemberCard varchar(20) NULL
)
GO
/*创立厂商表*/
CREATE TABLE Factory (
FactoryID varchar(10) Primary key ,
FactoryName varchar(50) NOT NULL ,
FactoryAddress varchar(250) NULL ,
FactoryPhone varchar(50) NULL
)
GO
/*创立商品信息表*/
CREATE TABLE MerchInfo (
MerchID varchar(10) Primary key ,
MerchName varchar(50) Unique NOT NULL ,
MerchPrice money NOT NULL ,
MerchNum int NOT NULL ,
CautionNum int NOT NULL ,
PlanNum int NOT NULL ,
BarCode varchar(20) Unique NOT NULL ,
SalesProPrice money NULL ,
SalesProDateS datetime NULL ,
SalesProDateE datetime NULL ,
AllowAbate int NOT NULL ,
AllowSale int NOT NULL ,
FactoryID int NOT NULL ,
ProvideID int NOT NULL
)
GO
/*创立供应商表*/
CREATE TABLE Provide (
ProvideID varchar(10) Primary key ,
ProvideName varchar(50) NOT NULL ,
ProvideAddress varchar(250) NULL ,
ProvidePhone varchar(25) NULL
)
GO
/*创立销售表*/
CREATE TABLE Sale (
SaleID int identity(1,1) Primary key ,
MerChID int NOT NULL ,
SaleDate datetime NOT NULL ,
SaleNum int NOT NULL,
SalePrice money NOT NULL
)
GO
/*创立入库表*/
CREATE TABLE Stock (
StockID int identity(1,1) Primary key ,
MerchID int NOT NULL ,
MerchNum int NOT NULL ,
MerchPrice money NULL ,
TotalPrice money NULL ,
PlanDate datetime NULL ,
StockDate datetime NULL,
StockState int NOT NULL
)
GO
/*创立用户表*/
CREATE TABLE User1 (
UserID varchar(10) Primary key ,
UserName varchar(25) NOT NULL ,
UserPW varchar(50) NOT NULL ,
UserStyle int NOT NULL ,
)
GO
/*----------创立表间约束----------*/
/*商品信息表中厂商编号、供应商编号分别与厂商表、供应商表之间的外键约束*/
ALTER TABLE MerchInfo ADD
CONSTRAINT [FK_MerchInfo_Factory] FOREIGN KEY
(
[FactoryID]
) REFERENCES Factory (
[FactoryID]
),
CONSTRAINT [FK_MerchInfo_Provide] FOREIGN KEY
(
[ProvideID]
) REFERENCES Provide (
[ProvideID]
)
GO
/*销售表中商品编号与商品信息表之间的外键约束*/
ALTER TABLE Sale ADD
CONSTRAINT [FK_Sale_MerchInfo] FOREIGN KEY
(
[MerChID]
) REFERENCES MerchInfo (
[MerchID]
) ON DELETE CASCADE
GO
/*入库表中商品编号与商品信息表之间的外键约束*/
ALTER TABLE Stock ADD
CONSTRAINT [FK_Stock_MerchInfo] FOREIGN KEY
(
[MerchID]
) REFERENCES MerchInfo (
[MerchID]
) ON DELETE CASCADE
GO
/*----------创立索引----------*/
/*在交易表上建立一个以交易编号、交易日期为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate)
GO
/*在商品信息表上建立一个以商品编号为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)
GO
/*在销售表上建立一个以销售编号、销售日期为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)
GO
/*在入库表上建立一个以入库编号、入库日期、商品编号为索引项的非聚集索引*/
CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID)
GO
/*----------创立视图----------*/
/*创立用于查询交易情况的视图*/
CREATE VIEW v_Dealing
AS
SELECT DealingDate as 交易日期,
UserName as 员工名称,
DealingPrice as 交易金额
FROM Dealing
GO
/*创立用于查询进货计划的视图*/
CREATE VIEW v_PlanStock
AS
SELECT Stock.StockID as SID,
MerchInfo.MerchName as 商品名称,
Factory.FactoryName as 厂商,
Provide.ProvideName as 供货商,
Stock.MerchNum as 计划进货数量,
Stock.PlanDate as 计划进货日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID = MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=0
GO
/*创立用于查询销售明细记录的视图*/
CREATE VIEW v_Sale
AS
SELECT MerchInfo.MerchName as 商品名称,
MerchInfo.MerchPrice as 商品价格,
Sale.SalePrice as 销售价格,
Sale.SaleNum as 销售数量,
Sale.SaleDate as 销售日期
FROM Sale INNER JOIN
MerchInfo ON Sale.MerChID = MerchInfo.MerchID
GO
/*创立用于查询入库情况的视图*/
CREATE VIEW v_Stock
AS
SELECT MerchInfo.MerchName as 商品名称,
Factory.FactoryName as 厂商,
Provide.ProvideName as 供货商,
Stock.MerchPrice as 入库价格,
Stock.MerchNum as 入库数量,
Stock.TotalPrice as 入库总额,
Stock.StockDate as 入库日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID = MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=1
GO
5、小结
和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本, 提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力, 提供有效的技术保障。
由于开发者能力有限,加上时间仓促,超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,本系统只能做出其中的一部分功能。
如发现还有其它问题,希望老师批评指正。
展开阅读全文