超市管理系统数据库课程设计.docx
- 文档编号:7468227
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:17
- 大小:152.42KB
超市管理系统数据库课程设计.docx
《超市管理系统数据库课程设计.docx》由会员分享,可在线阅读,更多相关《超市管理系统数据库课程设计.docx(17页珍藏版)》请在冰豆网上搜索。
超市管理系统数据库课程设计
课程设计说明书
课程设计名称:
数据库原理
课程设计题目:
超市管理系统
学院名称:
信息工程学院
一.需求分析
1.1系统开发目的
(1)大大提高超市的运作效率;
(2)通过全面的信息采集和处理,辅助提高超市的决策水平;
(3)使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效的技术保障。
1.2数据字典
(1)商品条形码:
每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。
(2)交易清单:
包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。
(3)商品积压:
在一定时期内,远无法完成销售计划的商品会造成积压。
(4)促销:
在一定时期内,某些商品会按低于原价的促销价格销售。
库存告警提示:
当商品的库存数量低于库存报警数量时发出提示。
(5)盘点:
计算出库存、销售额、盈利等经营指标。
1.3流程图
前台管理系统
顶层DFD图
第0层DFD图
2、系统功能分析
2.1系统功能
(1)、零售前台(POS)管理系统,本系统必须具有以下功能:
✧商品录入:
根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。
该扫描录入方法可以充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。
✧收银业务:
通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。
在顾客付款后,自动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。
如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。
会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。
✧安全性:
OS登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。
✧独立作业:
有的断网收银即在网络服务器断开或网络不通的情况下,收银机仍能正常作业
(2)、后台管理系统,本系统必须具备以下功能
✧进货管理:
根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。
按计划单有选择性地进行自动入库登记。
综合查询打印计划进货与入库记录及金额。
✧销售管理:
商品正常销售、促销与限量、限期及禁止销售控制。
综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。
按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。
✧库存管理:
综合查询库存明细记录。
库存状态自动告警提示。
如库存过剩、少货、缺货等。
软件为您预警,避免库存商品积压损失和缺货。
库存自动盘点计算。
✧人员管理:
员工、会员、供货商、厂商等基本信息登记管理。
员工操作权限管理。
客户销售权限管理。
(3)系统结构
系统总体结构
模块子系统结构
功能描述:
商品录入子系统要求能快速录入商品,因此必须支持条形码扫描。
功能描述:
收银业务子系统能计算交易总额,打印交易清单,并根据会员卡打折。
功能描述:
进货管理子系统可以根据库存自动指定进货计划,进货时自动等级,以及提供查询和打印计划进货与入库记录的功能。
功能描述:
销售管理子系统可以控制某商品是否允许销售,查询每种商品的销售情况并产生年、月、日报表,同时可以生成销售排行榜。
功能描述:
库存管理子系统提供查询库存明细记录的基本功能,并根据库存的状态报警,以及自动盘点计算。
功能描述:
人员管理子系统提供基本信息登记管理,员工操作权限管理,客户销售权限管理的功能。
三、系统结构设计
3.1系统关系模型
1.商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)
2.用户表(用户编号,用户名称,用户密码,用户类型)
3.会员表(会员编号,会员卡号,累积消费金额,注册日期)
4.销售表(销售编号,商品编号,销售数量,销售金额,销售日期)
5.交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)
6.进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)
7.供货商表(供货商编号,供货商名称,供货商地址,供货商电话)
8.厂商表(厂商编号,厂商名称,厂商地址,厂商电话)
3.2系统数据库表结构
表名
商品信息表
用户表
会员表
销售表
交易表
进货入库表
供货商表
厂商表
3.3系统ER图
(1).系统ER图说明
a.商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;
b.每个顾客可以购买多种商品,不同商品可由不同顾客购买;
每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。
商品信息表
字段名
字段类型
长度
主/外键
字段值约束
商品编号
int
4
P
Notnull
商品名称
Varchar
50
Notnull
商品价格
Money
4
Notnull
库存数量
Int
4
Notnull
库存报警数量
Int
4
Notnull
计划进货数
Int
4
null
条形码
Varchar
50
Notnull
促销价格
Money
4
促销起日期
Datetime
8
促销止日期
Datetime
8
允许打折
Int
4
Notnull
允许销售
Int
4
Notnull
厂商编号
Varchar
10
F
Notnull
供应商编号
Varchar
10
F
Notnull
用户表
字段名
字段类型
长度
主/外键
字段值约束
用户编号
varchar
10
P
Notnull
用户名称
Varchar
25
Notnull
用户密码
Varchar
50
Notnull
用户类型
Int
4
Notnull
会员表
字段名
字段类型
长度
主/外键
字段值约束
会员编号
Varchar
10
P
Notnull
会员卡号
Varchar
20
Notnull
累积消费金额
Money
4
Notnull
注册日期
Datetime
8
Notnull
销售表
字段名
字段类型
长度
主/外键
字段值约束
销售编号
Varchar
10
P
Notnull
商品编号
Varchar
10
F
Notnull
销售日期
Datetime
8
Notnull
销售数量
Int
4
Notnull
销售单额
Money
4
Notnull
交易表
字段名
字段类型
长度
主/外键
字段值约束
交易编号
Varchar
10
P
Notnull
交易金额
Money
4
Notnull
交易日期
Money
4
Notnull
会员编号
Varchar
10
用户名称
Varchar
10
F
Notnull
入库纪录表
字段名
字段类型
长度
主/外键
字段值约束
入库编号
Varchar
10
P
Notnull
商品编号
Varchar
10
F
Notnull
库存数量
Int
4
Notnull
商品价格
Money
4
Notnull
总额
Money
4
Notnull
入库日期
Datetime
8
Datetime
计划进货日期
Datetime
8
Datetime
入库状态
Int
4
Notnull
供货商表
字段名
字段类型
长度
主/外键
字段值约束
供应商编号
varchar
10
P
Notnull
供货商名称
Varchar
50
Notnull
供货商地址
Varchar
250
供货商电话
Varchar
25
厂商表
字段名
字段类型
长度
主/外键
字段值约束
厂商编号
varchar
10
P
Notnull
厂商名称
Varchar
50
Notnull
厂商地址
Varchar
250
厂商电话
Varchar
25
3.4视图设计
1)交易视图(v_Dealing)——用于查询交易情况的视图;
2)计划进货视图(v_PlanStock)——用于查询进货计划的视图;
3)销售视图(v_Sale)——用于查询销售明细记录的视图;
4)入库视图(v_Stock)——用于查询入库情况的视图。
/*----------创建视图----------*/
/*创建用于查询交易情况的视图*/
CREATEVIEW交易情况
AS
SELECT交易日期as交易日期,
用户名称as员工名称,
会员卡号as会员卡号,
交易金额as交易金额
FROMDealing
GO
/*创建用于查询进货计划的视图*/
CREATEVIEWv_PlanStock
AS
SELECTStock.入库编号asSID,
商品信息表.商品名称as商品名称,
商品信息表.条形码as条形码,
Factory.厂商名称as厂商,
Provide.供货商名称as供货商,
Stock.库存数量as计划进货数量,
Stock.计划进货日期as计划进货日期
FROMStock,商品信息表,Provide,Factory
WhereStock.商品编号=商品信息表.商品编号
andProvide.供应商编号=商品信息表.供应商编号
andFactory.厂商编号=商品信息表.厂商编号
andStock.入库状态=0
GO
/*创建用于查询销售明细记录的视图*/
CREATEVIEWv_Sale
AS
SELECT商品信息表.商品名称as商品名称,
商品信息表.条形码as条形码,
商品信息表.商品价格as商品价格,
Sale.销售单额as销售价格,
Sale.销售数量as销售数量,
Sale.销售日期as销售日期
FROMSaleINNERJOIN
商品信息表ONSale.商品编号=商品信息表.商品编号
GO
/*创建用于查询入库情况的视图*/
CREATEVIEWv_Stock
AS
SELECT商品信息表.商品名称as商品名称,
商品信息表.条形码as条形码,
Factory.厂商名称as厂商,
Provide.供货商名称as供货商,
Stock.商品价格as入库价格,
Stock.库存数量as入库数量,
Stock.总额as入库总额,
Stock.入库日期as入库日期
FROMStock,商品信息表,Provide,Factory
WhereStock.商品编号=商品信息表.商品编号
andProvide.供应商编号=商品信息表.供应商编号
andFactory.厂商编号=商品信息表.厂商编号
andStock.入库状态=1
GO
3.5索引
/*在交易表上建立一个以交易编号、交易日期为索引项的非聚集索引*/
CREATEnonclusteredINDEXIX_DealingONDealing(交易编号,交易日期)
GO
/*在商品信息表上建立一个以商品编号为索引项的非聚集索引*/
CREATEnonclusteredINDEXIX_商品信息表ON商品信息表(商品编号)
GO
/*在销售表上建立一个以销售编号、销售日期为索引项的非聚集索引*/
CREATEnonclusteredINDEXIX_SaleONSale(销售编号,销售日期)
GO
/*在入库表上建立一个以入库编号、入库日期、商品编号为索引项的非聚集索引*/
CREATEnonclusteredINDEXIX_StockONStock(入库编号,入库日期,商品编号)
GO
3.6约束
/*商品信息表中厂商编号、供应商编号分别与厂商表、供应商表之间的外键约束*/
ALTERTABLE商品信息表ADD
CONSTRAINT[FK_商品信息表_Factory]FOREIGNKEY
(
[厂商编号]
)REFERENCESFactory(
[厂商编号]
),
CONSTRAINT[FK_商品信息表_Provide]FOREIGNKEY
(
[供应商编号]
)REFERENCESProvide(
[供应商编号]
)
GO
/*销售表中商品编号与商品信息表之间的外键约束*/
ALTERTABLESaleADD
CONSTRAINT[FK_Sale_商品信息表]FOREIGNKEY
(
[商品编号]
)REFERENCES商品信息表(
[商品编号]
)ONDELETECASCADE
GO
/*入库表中商品编号与商品信息表之间的外键约束*/
ALTERTABLEStockADD
CONSTRAINT[FK_Stock_商品信息表]FOREIGNKEY
(
[商品编号]
)REFERENCES商品信息表(
[商品编号]
)ONDELETECASCADE
GO
3.7存储过程
1、调用带商品编号的存储过程查询商品的信息
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERPROC[dbo].[PR_1]
@商品编号CHAR(10)
AS
BEGIN
SELECT商品编号,商品名称,商品价格,库存数量
FROM商品信息表WHERE商品编号=@商品编号
END
2、调用带日期的存储过程查询该日期的商品销售的相关信息
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERPROC[dbo].[PR_2]
@销售日期DATETIME
AS
BEGIN
SELECT商品编号,销售数量,销售单额
FROM销售表
WHERE销售日期=@销售日期
END
3.8触发器
1.建立一个当销售表中有商品售出时,商品信息表中商品库存也相应的减少的触发器。
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERTRIGGER[dbo].[GIGER_2]
ON[dbo].[销售表]
FORINSERT
ASBEGIN
DECLARE@商品编号ASCHAR(10),
@销售数量ASINT
SELECT@商品编号=商品编号,@销售数量=销售数量
FROMinserted
UPDATE商品信息表
SET库存数量=库存数量-@销售数量
WHERE商品编号=@商品编号
END
2.建立一个当入库表中有商品入库时,对应的商品信息表中商品库存也发生变更的触发器。
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERTRIGGER[dbo].[GIGER_3]
ON[dbo].[入库纪录表]
FORUPDATE
ASBEGIN
DECLARE@入库数量ASINT,
@商品编号ASCHAR(10)
SELECT@商品编号=商品编号,@入库数量=入库数量
FROMinserted
UPDATE商品信息表
SET库存数量=库存数量+@入库数量
WHERE商品编号=@商品编号
END
参考文献:
1.萨师炫等《数据库系统概论(第三版)》.北京高等教育出版社,2001
2.施伯乐等.《数据库技术》.北京科学出版社,2002
3.王珊等.《数据库系统原理教程》.北京清华大学出版社,1998
4.张龙祥等.《数据库原理与设计》.北京人民邮电出版社,2002
5.陈志泊等.《数据库原理及应用教程》.北京人民邮电出版社,2002
6.徐洁磐.《现代数据库系统教程》.北京北京希望电子出版社,2002
7.周志逵等.《数据库理论与新技术》.北京北京理工大学出版社,2001
8.李建中等.《数据库系统原理》.北京电子工业出版社,1998
9.刘方鑫等.《数据库原理与技术》.北京电子工业出版社,2002
10.高阳.《计算机实用软件》.北京电子工业出版社,1995
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超市 管理 系统 数据库 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)