1、中小型超市管理系统数据库课程设计报告数据库原理课程项目综合设计项目名称: 中小型超市管理系统 数据库设计 课程名称: 数据库原理 班 级: 任课教师: 小组名称: 组 长: 成 员: 完成日期: 1、项目计划1.1系统开发目的(1)大大提高超市的运作效率;(2)使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效的技术保障。1.2背景说明21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。技术的提升和管理的升级是超市业的竞争核心。零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店
2、、专卖店、货仓等相互并存。如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。1.3应用范围本系统适应于各种中小型的超市。1.4 定义(1)商品条形码:每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。(2)交易清单:包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号。(3)商品积压:在一定时期内,远无法完成销售计划的商品会造成积压。(4)促销:在一定时期内,某些商品会按低于原价的促销价格销售。库存告警提示:当商品的库存数量低于库存报警数量时发出提示。(5)盘点:计算出库存、销售额、盈利等经营
3、指标。1.5参考资料数据库系统概论 王珊 萨师煊编 高等教育出版社2、逻辑分析与详细分析2.1系统功能 (1)本系统具备以下功能 进货管理:根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。综合查询打印计划进货与入库记录及金额。 销售管理:商品正常销售、促销与限量、限期及禁止销售控制。综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。按多种方式统计生成销售排行榜,灵活的查看和打印商品销售日、月、年报表。 库存管理: 综合查询库存明细记录。库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免
4、库存商品积压损失和缺货。 库存自动盘点计算。 人员管理: 员工、会员、供货商、厂商等基本信息登记管理。 员工操作权限管理。 客户销售权限管理。(2)系统结构系统总体结构2.2、流程图 2.3、户类型与职能(1)、员工(营业员): 通过商品条形码扫描输入商品到购买清单 操作软件计算交易总金额 操作软件输出交易清单 对会员进行会员卡扫描以便打折(2)、:超市经理 操作软件录入商品,供货商,厂商 操作软件制定进货计划 查询打印计划进货与入库记录 操作软件控制商品销售与否 查询打印销售情况 操作软件生成销售排行榜 查询库存明细记录 根据软件发出的库存告警进行入货 操作软件进行盘点计算(3)、总经理:
5、基本信息登记管理 员工操作权限管理 客户销售权限管理3、超市销售系统概念设计文档(1)、系统ER图(2)、系统ER图说明1) 商店中的所有用户(员工)可以销售多种商品,每种商品可由不同用户(员工)销售;2) 每个顾客可以购买多种商品,不同商品可由不同顾客购买;3) 每个供货商可以供应多种不同商品,每种商品可由多个供应商供应。(3)、视图设计1) 交易视图(v_Dealing)用于查询交易情况的视图;2) 计划进货视图(v_PlanStock)用于查询进货计划的视图;3) 销售视图(v_Sale)用于查询销售明细记录的视图;4) 入库视图(v_Stock)用于查询入库情况的视图。4、逻辑设计文档
6、 (1)、系统关系模型a) 商品信息表(商品编号,商品名称,价格,条形码,促销价格,促销起日期,促销止日期,允许打折,库存数量,库存报警数量,计划进货数,允许销售,厂商编号,供货商编号)b) 用户表(用户编号,用户名称,用户密码,用户类型)c) 会员表(会员编号,会员卡号,累积消费金额,注册日期)d) 销售表(销售编号,商品编号,销售数量,销售金额,销售日期)e) 交易表(交易编号,用户名称,交易金额,会员卡号,交易日期)f) 进货入库表(入库编号,入库商品编号,入库数量,单额,总额,入库日期,计划进货日期,入库状态)g) 供货商表(供货商编号,供货商名称,供货商地址,供货商电话)h) 厂商表
7、(厂商编号,厂商名称,厂商地址,厂商电话)(2)、系统数据库表结构数据库表索引 表名中文名MerchInfo商品信息表User用户表Menber会员表Sale销售表Dealing交易表Stock进货入库表Provide供货商表Factory厂商表商品信息表(MerchInfo)字段名字段类型长度主/外键字段值约束对应中文名MerchIDint4PNot null商品编号MerchNameVarchar50Not null商品名称MerchPriceMoney4Not null价格MerchNumInt4Not null库存数量CautionNumInt4Not null库存报警数量PlanNu
8、mInt4null计划进货数BarCodeVarchar50Not null条形码SalesProPriceMoney4促销价格SalesProDateSDatetime8促销起日期SalesProDateEDatetime8促销止日期AllowAbateInt4Not null允许打折AllowSaleInt4Not null允许销售FactoryIDVarchar10FNot null厂商编号ProvideIDVarchar10FNot null供货商编号用户表(User)字段名字段类型长度主/外键字段值约束对应中文名UserIDvarchar10PNot null用户编号UserName
9、Varchar25Not null用户名称UserPWVarchar50Not null用户密码UserStyleInt4Not null用户类型会员表(Menber)字段名字段类型长度主/外键字段值约束对应中文名MemberIDVarchar10PNot null会员编号MemberCardVarchar20Not null会员卡号TotalCostMoney4Not null累积消费金额RegDateDatetime8Not null注册日期销售表(Sale)字段名字段类型长度主/外键字段值约束对应中文名SaleIDVarchar10PNot null销售编号MerChIDVarchar1
10、0FNot null商品编号SaleDateDatetime8Not null销售日期SaleNumInt4Not null销售数量SalePriceMoney4Not null销售单额交易表(Dealing)字段名字段类型长度主/外键字段值约束对应中文名DealingIDVarchar10PNot null交易编号DealingPriceMoney4Not null交易金额DealingDateMoney4Not null交易日期MemberIDVarchar10会员卡号UserNameVarchar10FNot null用户名称入库纪录表(Stock)字段名字段类型长度主/外键字段值约束对
11、应中文名StockIDVarchar10PNot null入库编号MerchIDVarchar10FNot null入库商品编号MerchNumInt4Not null入库数量MerchPriceMoney4Not null单额TotalPriceMoney4Not null总额StockDateDatetime8Datetime入库日期PlanDateDatetime8Datetime计划进货日期StockStateInt4Not null入库状态供货商表(Provide)字段名字段类型长度主/外键字段值约束对应中文名ProvideIDvarchar10PNot null供货商编号Provi
12、deNameVarchar50Not null供货商名称ProvideAddressVarchar250供货商地址ProvidePhoneVarchar25供货商电话厂商表(Provide)字段名字段类型长度主/外键字段值约束对应中文名FactoryIDvarchar10PNot null厂商编号FactoryNameVarchar50Not null厂商名称FactoryAddressVarchar250厂商地址FactoryPhoneVarchar25厂商电话5、物理设计文档/*-创建数据库-*/create database SuperMarketdbon primary(name=Su
13、perMarketdb,filename=C:Program FilesMicrosoft SQL ServerMSSQLDataSuperMarketdb.mdf,size=100MB,maxsize=200MB,filegrowth=20MB)log on(name=SuperMarketlog,filename=C:Program FilesMicrosoft SQL ServerMSSQLDataSuperMarketdb.ldf,size=60MB,maxsize=200MB,filegrowth=20MB)go/*-创建基本表-*/use SuperMarketdbgo/*创建交易
14、表*/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 , FactoryA
15、ddress varchar(250) NULL , FactoryPhone varchar(50) NULL )GO/*创建会员表*/CREATE TABLE Member ( MemberID varchar(10) Primary key , MemberCard varchar(20) NOT NULL , TotalCost money NOT NULL , RegDate datetime NOT NULL )GO/*创建商品信息表*/CREATE TABLE MerchInfo ( MerchID int identity(1,1) Primary key , MerchNam
16、e 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 NO
17、T 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 ,
18、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 , StockDat
19、e datetime NULL, StockState int NOT NULL) GO/*创建用户表*/CREATE TABLE User ( 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_Factor
20、y 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 CASC
21、ADE 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/*在商品信息表上建立一个以商品编号为索引项的非聚
22、集索引*/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/*-创建视图-*/*创建用于查询交易情况的视图*/C
23、REATE VIEW v_DealingASSELECT DealingDate as 交易日期, UserName as 员工名称, MemberCard as 会员卡号, DealingPrice as 交易金额FROM Dealing GO/*创建用于查询进货计划的视图*/CREATE VIEW v_PlanStockASSELECT Stock.StockID as SID, MerchInfo.MerchName as 商品名称, MerchInfo.BarCode as 条形码, Factory.FactoryName as 厂商, Provide.ProvideName as 供
24、货商, Stock.MerchNum as 计划进货数量, Stock.PlanDate as 计划进货日期FROM Stock,MerchInfo,Provide,FactoryWhere Stock.MerchID = MerchInfo.MerchID and Provide.ProvideID=MerchInfo.ProvideID and Factory.FactoryID=MerchInfo.FactoryID and Stock.StockState=0 GO/*创建用于查询销售明细记录的视图*/CREATE VIEW v_SaleASSELECT MerchInfo.Merch
25、Name as 商品名称, MerchInfo.BarCode 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_StockASSELECT MerchInfo.MerchName as 商品名称, MerchInfo.BarCode as
26、 条形码, Factory.FactoryName as 厂商, Provide.ProvideName as 供货商, Stock.MerchPrice as 入库价格, Stock.MerchNum as 入库数量, Stock.TotalPrice as 入库总额, Stock.StockDate as 入库日期FROM Stock,MerchInfo,Provide,FactoryWhere Stock.MerchID = MerchInfo.MerchID and Provide.ProvideID=MerchInfo.ProvideID and Factory.FactoryID=
27、MerchInfo.FactoryID and Stock.StockState=1 GO6、小结和传统管理模式相比较,使用本系统,毫无疑问会大大提高超市的运作效率,辅助提高超市的决策水平,管理水平,为降低经营成本, 提高效益,减少差错,节省人力,减少顾客购物时间,增加客流量,提高顾客满意度,增强超市扩张能力, 提供有效的技术保障。由于开发者能力有限,本系统难免会出现一些不足之处,例如: 本系统只适合中小型超市使用,不能适合大型超市使用; 超市管理系统涉及范围宽,要解决的问题多,功能复杂,实现困难,但由于限于时间,本系统只能做出其中的一部分功能;对于以上出现的问题,我们深表歉意,如发现还有其它问题,希望老师批评指正。