中小型超市管理系统数据库课程设计报告.docx
《中小型超市管理系统数据库课程设计报告.docx》由会员分享,可在线阅读,更多相关《中小型超市管理系统数据库课程设计报告.docx(20页珍藏版)》请在冰豆网上搜索。
中小型超市管理系统数据库课程设计报告
《数据库原理》课程项目综合设计
项目名称:
中小型超市管理系统
数据库设计
课程名称:
数据库原理
班级:
任课教师:
小组名称:
组长:
成员:
完成日期:
1、项目计划
1.1系统开发目的
(1)大大提高超市的运作效率;
(2)使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效的技术保障。
1.2背景说明
21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。
技术的提升和管理的升级是超市业的竞争核心。
零售领域目前呈多元发展趋势,多种业态:
超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。
如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。
1.3应用范围
本系统适应于各种中小型的超市。
1.4定义
(1)商品条形码:
每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。
(2)交易清单:
包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。
(3)商品积压:
在一定时期内,远无法完成销售计划的商品会造成积压。
(4)促销:
在一定时期内,某些商品会按低于原价的促销价格销售。
库存告警提示:
当商品的库存数量低于库存报警数量时发出提示。
(5)盘点:
计算出库存、销售额、盈利等经营指标。
1.5参考资料
《数据库系统概论》王珊萨师煊编高等教育出版社
2、逻辑分析与详细分析
2.1系统功能
(1)本系统具备以下功能
✧进货管理:
根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。
按计划单有选择性地进行自动入库登记。
综合查询打印计划进货与入库记录及金额。
✧销售管理:
商品正常销售、促销与限量、限期及禁止销售控制。
综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。
按多种方式统计生成销售排行榜,灵活的查看和打印商品销售日、月、年报表。
✧库存管理:
综合查询库存明细记录。
库存状态自动告警提示。
如库存过剩、少货、缺货等。
软件为您预警,避免库存商品积压损失和缺货。
库存自动盘点计算。
✧人员管理:
员工、会员、供货商、厂商等基本信息登记管理。
员工操作权限管理。
客户销售权限管理。
(2)系统结构
系统总体结构
2.2、流程图
2.3、户类型与职能
(1)、员工(营业员):
✧通过商品条形码扫描输入商品到购买清单
✧操作软件计算交易总金额
✧操作软件输出交易清单
✧对会员进行会员卡扫描以便打折
(2)、:
超市经理
✧操作软件录入商品,供货商,厂商
✧操作软件制定进货计划
✧查询打印计划进货与入库记录
✧操作软件控制商品销售与否
✧查询打印销售情况
✧操作软件生成销售排行榜
✧查询库存明细记录
✧根据软件发出的库存告警进行入货
✧操作软件进行盘点计算
(3)、总经理:
✧基本信息登记管理
✧员工操作权限管理
✧客户销售权限管理
3、超市销售系统概念设计文档
(1)、系统ER图
(2)、系统ER图说明
1)商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;
2)每个顾客可以购买多种商品,不同商品可由不同顾客购买;
3)每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。
(3)、视图设计
1)交易视图(v_Dealing)——用于查询交易情况的视图;
2)计划进货视图(v_PlanStock)——用于查询进货计划的视图;
3)销售视图(v_Sale)——用于查询销售明细记录的视图;
4)入库视图(v_Stock)——用于查询入库情况的视图。
4、逻辑设计文档
(1)、系统关系模型
a)商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)
b)用户表(用户编号,用户名称,用户密码,用户类型)
c)会员表(会员编号,会员卡号,累积消费金额,注册日期)
d)销售表(销售编号,商品编号,销售数量,销售金额,销售日期)
e)交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)
f)进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)
g)供货商表(供货商编号,供货商名称,供货商地址,供货商电话)
h)厂商表(厂商编号,厂商名称,厂商地址,厂商电话)
(2)、系统数据库表结构
数据库表索引
表名
中文名
MerchInfo
商品信息表
User
用户表
Menber
会员表
Sale
销售表
Dealing
交易表
Stock
进货入库表
Provide
供货商表
Factory
厂商表
商品信息表(MerchInfo)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MerchID
int
4
P
Notnull
商品编号
MerchName
Varchar
50
Notnull
商品名称
MerchPrice
Money
4
Notnull
价格
MerchNum
Int
4
Notnull
库存数量
CautionNum
Int
4
Notnull
库存报警数量
PlanNum
Int
4
null
计划进货数
BarCode
Varchar
50
Notnull
条形码
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
供货商编号
用户表(User)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
UserID
varchar
10
P
Notnull
用户编号
UserName
Varchar
25
Notnull
用户名称
UserPW
Varchar
50
Notnull
用户密码
UserStyle
Int
4
Notnull
用户类型
会员表(Menber)
字段名
字段类型
长度
主/外键
字段值约束
对应中文名
MemberID
Varchar
10
P
Notnull
会员编号
MemberCard
Varchar
20
Notnull
会员卡号
TotalCost
Money
4
Notnull
累积消费金额
RegDate
Datetime
8
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
交易日期
MemberID
Varchar
10
会员卡号
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
厂商电话
5、物理设计文档
/*----------创建数据库----------*/
createdatabaseSuperMarketdb
onprimary
(
name=SuperMarketdb,
filename='C:
\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\SuperMarketdb.mdf',
size=100MB,
maxsize=200MB,
filegrowth=20MB
)
logon
(
name=SuperMarketlog,
filename='C:
\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
/*创建会员表*/
CREATETABLEMember(
MemberIDvarchar(10)Primarykey,
MemberCardvarchar(20)NOTNULL,
TotalCostmoneyNOTNULL,
RegDatedatetimeNOTNULL
)
GO
/*创建商品信息表*/
CREATETABLEMerchInfo(
MerchIDintidentity(1,1)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
/*创建用户表*/
CREATETABLEUser(
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员工名称,
MemberCardas会员卡号,
DealingPriceas交易金额
FROMDealing
GO
/*创建用于查询进货计划的视图*/
CREATEVIEWv_PlanStock
AS
SELECTStock.StockIDasSID,
MerchInfo.MerchNameas商品名称,
MerchInfo.BarCodeas条形码,
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.BarCodeas条形码,
MerchInfo.MerchPriceas商品价格,
Sale.SalePriceas销售价格,
Sale.SaleNumas销售数量,
Sale.SaleDateas销售日期
FROMSaleINNERJOIN
MerchInfoONSale.MerChID=MerchInfo.MerchID
GO
/*创建用于查询入库情况的视图*/
CREATEVIEWv_Stock
AS
SELECTMerchInfo.MerchNameas商品名称,
MerchInfo.BarCodeas条形码,
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
6、小结
和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本,提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力,提供有效的技术保障。
由于开发者能力有限,本系统难免会出现一些不足之处,例如:
✧本系统只适合中小型超市使用,不能适合大型超市使用;
✧超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能;
对于以上出现的问题,我们深表歉意,如发现还有其它问题,希望老师批评指正。