小型超市管理系统开发文档doc.docx
《小型超市管理系统开发文档doc.docx》由会员分享,可在线阅读,更多相关《小型超市管理系统开发文档doc.docx(23页珍藏版)》请在冰豆网上搜索。
小型超市管理系统开发文档doc
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参考资料
《SQLServer2000实用教程》范立南编清华大学出版社
《轻松搞定SQLServer2000程序设计》RebeccaM.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图
(2)、系统ER图说明
1)商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;
2)每个顾客可以购买多种商品,不同商品可由不同顾客购买;
3)每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。
(3)、视图设计
1)交易视图(v_Dealing)——用于查询交易情况的视图;
2)计划进货视图(v_PlanStock)——用于查询进货计划的视图;
3)销售视图(v_Sale)——用于查询销售明细记录的视图;
4)入库视图(v_Stock)——用于查询入库情况的视图。
2.5、系统环境需求
软件环境
安装SQLServer2000的服务器版本,
安装了VB等可视化开发工具软件,
安装windows2000服务器版本。
3、逻辑设计文档
(1)、系统关系模型
a)商品信息表(商品编号,商品名称,价格,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)
b)用户表(用户编号,用户名称,用户密码,用户类型)
c)销售表(销售编号,商品编号,销售数量,销售金额,销售日期)
d)交易表(交易编号,用户名称,交易金额,交易日期)
e)进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)
f)供货商表(供货商编号,供货商名称,供货商地址,供货商电话)
g)厂商表(厂商编号,厂商名称,厂商地址,厂商电话)
(2)、系统数据库表结构
数据库表索引
表名
中文名
MerchInfo
商品信息表
User1
用户表
Sale
销售表
Dealing
交易表
Stock
进货入库表
Provide
供货商表
Factory
厂商表
商品信息表(MerchInfo)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MerchID
varchar
10
P
Notnull
商品编号
MerchName
Varchar
50
Notnull
商品名称
MerchPrice
Money
4
Notnull
价格
MerchNum
Int
4
Notnull
库存数量
CautionNum
Int
4
Notnull
库存报警数量
PlanNum
Int
4
null
计划进货数
SalesProPrice
Money
4
促销价格
SalesProDateS
Datetime
8
促销起日期
SalesProDateE
Datetime
8
促销止日期
AllowAbate
Int
4
Notnull
允许打折
AllowSale
Int
4
Notnull
允许销售
FactoryID
Varchar
10
F
Notnull
厂商编号
ProvideID
Varchar
10
F
Notnull
供货商编号
用户表(User1)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
UserID
varchar
10
P
Notnull
用户编号
UserName
Varchar
25
Notnull
用户名称
UserPW
Varchar
50
Notnull
用户密码
UserStyle
Int
4
Notnull
用户类型
销售表(Sale)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
SaleID
Varchar
10
P
Notnull
销售编号
MerChID
Varchar
10
F
Notnull
商品编号
SaleDate
Datetime
8
Notnull
销售日期
SaleNum
Int
4
Notnull
销售数量
SalePrice
Money
4
Notnull
销售单额
交易表(Dealing)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
DealingID
Varchar
10
P
Notnull
交易编号
DealingPrice
Money
4
Notnull
交易金额
DealingDate
Money
4
Notnull
交易日期
UserName
Varchar
10
F
Notnull
用户名称
入库纪录表(Stock)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
StockID
Varchar
10
P
Notnull
入库编号
MerchID
Varchar
10
F
Notnull
入库商品编号
MerchNum
Int
4
Notnull
入库数量
MerchPrice
Money
4
Notnull
单额
TotalPrice
Money
4
Notnull
总额
StockDate
Datetime
8
Datetime
入库日期
PlanDate
Datetime
8
Datetime
计划进货日期
StockState
Int
4
Notnull
入库状态
供货商表(Provide)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
ProvideID
varchar
10
P
Notnull
供货商编号
ProvideName
Varchar
50
Notnull
供货商名称
ProvideAddress
Varchar
250
供货商地址
ProvidePhone
Varchar
25
供货商电话
厂商表(Provide)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
FactoryID
varchar
10
P
Notnull
厂商编号
FactoryName
Varchar
50
Notnull
厂商名称
FactoryAddress
Varchar
250
厂商地址
FactoryPhone
Varchar
25
厂商电话
4、物理设计文档
/*----------创建数据库----------*/
createdatabaseSuperMarketdb
onprimary
(
name=SuperMarketdb,
filename='d:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\SuperMarketdb.mdf',
size=100MB,
maxsize=200MB,
filegrowth=20MB
)
logon
(
name=SuperMarketlog,
filename='d:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\SuperMarketdb.ldf',
size=60MB,
maxsize=200MB,
filegrowth=20MB
)
go
/*----------创建基本表----------*/
use[SuperMarketdb]
go
/*创建交易表*/
CREATETABLEDealing(
DealingIDintidentity(1,1)Primarykey,
DealingDatedatetimeNOTNULL,
DealingPricemoneyNOTNULL,
UserNamevarchar(25)NULL,
MemberCardvarchar(20)NULL
)
GO
/*创建厂商表*/
CREATETABLEFactory(
FactoryIDvarchar(10)Primarykey,
FactoryNamevarchar(50)NOTNULL,
FactoryAddressvarchar(250)NULL,
FactoryPhonevarchar(50)NULL
)
GO
/*创建商品信息表*/
CREATETABLEMerchInfo(
MerchIDvarchar(10)Primarykey,
MerchNamevarchar(50)UniqueNOTNULL,
MerchPricemoneyNOTNULL,
MerchNumintNOTNULL,
CautionNumintNOTNULL,
PlanNumintNOTNULL,
BarCodevarchar(20)UniqueNOTNULL,
SalesProPricemoneyNULL,
SalesProDateSdatetimeNULL,
SalesProDateEdatetimeNULL,
AllowAbateintNOTNULL,
AllowSaleintNOTNULL,
FactoryIDintNOTNULL,
ProvideIDintNOTNULL
)
GO
/*创建供应商表*/
CREATETABLEProvide(
ProvideIDvarchar(10)Primarykey,
ProvideNamevarchar(50)NOTNULL,
ProvideAddressvarchar(250)NULL,
ProvidePhonevarchar(25)NULL
)
GO
/*创建销售表*/
CREATETABLESale(
SaleIDintidentity(1,1)Primarykey,
MerChIDintNOTNULL,
SaleDatedatetimeNOTNULL,
SaleNumintNOTNULL,
SalePricemoneyNOTNULL
)
GO
/*创建入库表*/
CREATETABLEStock(
StockIDintidentity(1,1)Primarykey,
MerchIDintNOTNULL,
MerchNumintNOTNULL,
MerchPricemoneyNULL,
TotalPricemoneyNULL,
PlanDatedatetimeNULL,
StockDatedatetimeNULL,
StockStateintNOTNULL
)
GO
/*创建用户表*/
CREATETABLEUser1(
UserIDvarchar(10)Primarykey,
UserNamevarchar(25)NOTNULL,
UserPWvarchar(50)NOTNULL,
UserStyleintNOTNULL,
)
GO
/*----------创建表间约束----------*/
/*商品信息表中厂商编号、供应商编号分别与厂商表、供应商表之间的外键约束*/
ALTERTABLEMerchInfoADD
CONSTRAINT[FK_MerchInfo_Factory]FOREIGNKEY
(
[FactoryID]
)REFERENCESFactory(
[FactoryID]
),
CONSTRAINT[FK_MerchInfo_Provide]FOREIGNKEY
(
[ProvideID]
)REFERENCESProvide(
[ProvideID]
)
GO
/*销售表中商品编号与商品信息表之间的外键约束*/
ALTERTABLESaleADD
CONSTRAINT[FK_Sale_MerchInfo]FOREIGNKEY
(
[MerChID]
)REFERENCESMerchInfo(
[MerchID]
)ONDELETECASCADE
GO
/*入库表中商品编号与商品信息表之间的外键约束*/
ALTERTABLEStockADD
CONSTRAINT[FK_Stock_MerchInfo]FOREIGNKEY
(
[MerchID]
)REFERENCESMerchInfo(
[MerchID]
)ONDELETECASCADE
GO
/*----------创建索引----------*/
/*在交易表上建立一个以交易编号、交易日期为索引项的非聚集索引*/
CREATEnonclusteredINDEXIX_DealingONDealing(DealingID,DealingDate)
GO
/*在商品信息表上建立一个以商品编号为索引项的非聚集索引*/
CREATEnonclusteredINDEXIX_MerchInfoONMerchInfo(MerchID)
GO
/*在销售表上建立一个以销售编号、销售日期为索引项的非聚集索引*/
CREATEnonclusteredINDEXIX_SaleONSale(SaleID,SaleDate)
GO
/*在入库表上建立一个以入库编号、入库日期、商品编号为索引项的非聚集索引*/
CREATEnonclusteredINDEXIX_StockONStock(StockID,StockDate,MerchID)
GO
/*----------创建视图----------*/
/*创建用于查询交易情况的视图*/
CREATEVIEWv_Dealing
AS
SELECTDealingDateas交易日期,
UserNameas员工名称,
DealingPriceas交易金额
FROMDealing
GO
/*创建用于查询进货计划的视图*/
CREATEVIEWv_PlanStock
AS
SELECTStock.StockIDasSID,
MerchInfo.MerchNameas商品名称,
Factory.FactoryNameas厂商,
Provide.ProvideNameas供货商,
Stock.MerchNumas计划进货数量,
Stock.PlanDateas计划进货日期
FROMStock,MerchInfo,Provide,Factory
WhereStock.MerchID=MerchInfo.MerchID
andProvide.ProvideID=MerchInfo.ProvideID
andFactory.FactoryID=MerchInfo.FactoryID
andStock.StockState=0
GO
/*创建用于查询销售明细记录的视图*/
CREATEVIEWv_Sale
AS
SELECTMerchInfo.MerchNameas商品名称,
MerchInfo.MerchPriceas商品价格,
Sale.SalePriceas销售价格,
Sale.SaleNumas销售数量,
Sale.SaleDateas销售日期
FROMSaleINNERJOIN
MerchInfoONSale.MerChID=MerchInfo.MerchID
GO
/*创建用于查询入库情况的视图*/
CREATEVIEWv_Stock
AS
SELECTMerchInfo.MerchNameas商品名称,
Factory.FactoryNameas厂商,
Provide.ProvideNameas供货商,
Stock.MerchPriceas入库价格,
Stock.MerchNumas入库数量,
Stock.TotalPriceas入库总额,
Stock.StockDateas入库日期
FROMStock,MerchInfo,Provide,Factory
WhereStock.MerchID=MerchInfo.MerchID
andProvide.ProvideID=MerchInfo.ProvideID
andFactory.FactoryID=MerchInfo.FactoryID
andStock.StockState=1
GO
5、小结
和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本,提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力,提供有效的技术保障。
由于开发者能力有限,加上时间仓促,超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,本系统只能做出其中的一部分功能。
如发现还有其它问题,希望老师批评指正。