超市数据库系统文档格式.docx
《超市数据库系统文档格式.docx》由会员分享,可在线阅读,更多相关《超市数据库系统文档格式.docx(25页珍藏版)》请在冰豆网上搜索。
a、信息要求
总经理需要了解超市损益情况,销售额,各种商品的销售量及库存量,制定商品采购战略;
部门业绩,员工绩效;
对顾客购买习惯分析,需要顾客购买信息表。
b、处理要求
当有员工晋升时,有权更新员工信息;
部门调整时,有权更新部门相关信息。
2.3.2、部门主管
各部门主管需知道本部门成员信息,业绩情况;
采购部主管、销售部主管和仓储部还要了解各种商品销售量、库存量、损失量;
人事部主管需有所有的员工信息、人员岗位分布情况;
财务部主管需商品销售信息,商品采购信息,人员工资福利情况;
采购部主管需要供应商的相关信息,比如供应商提供商品的价格,数量等。
各主管能够部分修改本部门相关信息,比如联系电话,部门人数,部门地址,本部门人员详细信息;
人事部主管有增加或删除职工的权力;
仓储部主管可以增加商品记录,修改损失单,上架单等;
销售部主管可以更新货物售出单,更改商品售价,打折,会员价等商品信息。
2.3.3、员工
员工能够查到自己的个人信息,例如,月工资,奖金,职位等;
因职位的不同,权限也相应不。
员工对自己的个人信息可以修改,如联系电话,银行账号,住址等。
2.3.4、顾客
这里的顾客主要指超市会员,会员能够查看自己买了哪些商品,相关费用,剩多少积分等基本信息;
顾客还可以了解超市商品的价格以及新产品上架,折扣等商品信息。
会员可以对自己的银行账号、联系电话、住址做更新操作。
2.4、数据字典
Member(会员表)
列名
数据类型
约束条件
说明
MemID
Varchar(20)
主键,非空
会员卡号
MemName
Varchar(10)
非空
会员名
Sex
Varchar(5)
-
会员性别
Age
SmallInt
会员年龄
BankNumber
银行卡号
Integral
Int
积分
Customer(顾客表)
SerialNumber
流水号
EmNo
Char(6)
员工号
IsMem
Bit
是否是会员
Payment
付款方式
PurTime
Datetime
购买时间
Goods_Customer(顾客-商品表)
GoodsID
商品编号
EmployeeInfo(员工表)
约束
EmployeeNo
EmployeeName
Varchar(8)
员工名
PostNo
外码
职位代码
Birth
datetime
出生日期
Tel
Numbereric(10,0)
联系方式
DepartmentNo
部门号
IDCard
Numbereric(18,0)
身份证号
BankNo
Numbereric(20,0)
银行账号
Seniority
工龄
DepartmentInfo(部门表)
DepartmetName
部门名
Char(11)
联系电话
PeopleCount
部门人数
CashierCustomer(收银员-顾客表)
CashierNumber
收银员编号
Satisfaction
满意度
PostInfo(职称表)
职称代码
PostName
职称名
Wage
Money
工资
Supplierinfo(供应商)
SupNumber
Char(10)
供应商编号
SupName
Char(20)
供应商名
SupAdd
Varchar(50)
供应商地址
Prin
负责人
SupPhone
供应商电话
Goodsinfo(商品)
GoodsNumber
GoodsName
商品名
Price
价格
Category
类别
Discount
折扣
VIPPrice
会员价
Supplier-Goodsinfo(供应商-商品)
Bid
进价
GoodsAmo
float
货物数量
Stowageinfo(仓库)
StoNumber
仓库编号
Volume
Float
库容量
Type
类型
StoPrin
仓库负责人
Stowage-Goodsinfo(仓库-商品)
Amount
数量
PurDate
date
入库日期
2.5、数据流图
图1顶层数据流图
图2会员数据流
图3商品管理数据流
图4员工管理数据流
图5销售管理数据流
三、概念结构设计
3.1、分E-R图设计
3.2、总E-R图设计
四、逻辑结构设计
4.1、E-R图向关系模型转换
员工EmployeeInfo(EmNo,EmName,PostNo,Birth,Tel,DepartNo,IDCard,BankNo,InOffice)
部门DepartmentInfo(DepartNo,DepartName,Tel,Count,HeadNo)
职位PostInfo(PostNo,PostName,Wage)
会员Member(MemID,MemName,Sex,Age,BankNum,Integral)
顾客Customer(SerialNum,EmNo,IsMem,Payment,PurTime)
会员-顾客Member_Customer(SerialNum,IsMem,MemID)
顾客-商品Goods_Customer(SerialNum,GoodsID)
供应商Supplierinfo(SupNum,SupName,SupAdd,Prin,SupPhone)
商品Goodsinfo(GoodsNum,GoodsName,Price,Category,Discount,VIPPrice)
供应商-商品Supplier-Goodsinfo(SupNum,GoodsNum,Bid,GoodsAmo)
仓库Stowageinfo(StoNum,Volume,******,StoPrin)
仓库-商品Stowage-Goodsinfo(StoNum,Category,Amount,PurDate)
注:
下划线标注的属性为主码,以上关系模式均为BCNF。
4.2、用户子模式
顾客{流水号,收银员编号,商品名,价格,折扣,满意度}
员工{员工编号,员工名,职位编号,职位名,工资,工龄}
仓库主管{仓库编号,类别,库存,容量,负责人,入库日期}
部门主管{部门编号,部门名,部门人数,员工编号,员工名,职位编号,职位名,工资,工龄}
5、物理结构设计
5.1、关系模式存取方法
在员工表(EployeeInfo)属性列EmployeeNumber上建立B+树索引,会员表(Member)属性列Member建立B+树索引;
在商品表(GoodsInfo)属性列SubNumber上建立聚簇存取方法。
5.2、存储结构
六、数据库实施
6.1、建表
供应商:
CREATETABLESupplier(
SupplierNumberCHAR(10)NOTNULLUNIQUE,
SupplierNameCHAR(20)NOTNULL,
SupplierAddressVARCHAR(50),
PrincipalCHAR(10),
SupplierPhoneNUMERIC(18,0),
PRIMARYKEY(SupplierNumber)
);
商品:
CREATETABLEGoods(
GoodsNumberCHAR(10)NOTNULLUNIQUE,
GoodsNameCHAR(20)NOTNULL,
PriceMONEYNOTNULL,
CategoryCHAR(10)NOTNULL,
DiscountMONEY,
VIPpriceMONEY,
PRIMARYKEY(GoodsNumber)
供应商—商品:
CREATETABLESupplierGoods(
SupplierNumberCHAR(10)NOTNULL,
GoodsNumberCHAR(10)NOTNULL,
BidMONEY,
GoodsAmountFLOAT,
PRIMARYKEY(SupplierNumber,GoodsNumber),
CONSTRAINTC1FOREIGNKEY(SupplierNumber)REFERENCESSupplier(SupplierNumber),
CONSTRAINTC2FOREIGNKEY(GoodsNumber)REFERENCESGoods(GoodsNumber)
仓库:
CREATETABLEStowage(
StowageNumberCHAR(10)NOTNULLUNIQUE,
VolumeFLOATNOTNULL,
StowagePrincipalCHAR(10)NOTNULL,
PRIMARYKEY(StowageNumber)
仓库—商品:
CREATETABLEStowageGoods(
StowageNumberCHAR(10)NOTNULL,
AmountFLOAT,
PurchaseDateDATETIME,
PRIMARYKEY(StowageNumber,Category),
CONSTRAINTC3FOREIGNKEY(StowageNumber)REFERENCESStowage(StowageNumber)
会员:
CREATETABLEMember(
MemberIDVARCHAR(20)NOTNULLUNIQUE,
NameVARCHAR(10)NOTNULL,
SexVARCHAR(5),
AgeSMALLINT,
AccountVARCHAR(20),
IntegralINTNOTNULL,
PRIMARYKEY(MemberID)
顾客:
CREATETABLECustomer(
SerialNumberVARCHAR(20)NOTNULLUNIQUE,
IsMemberCHAR(5)NOTNULL,
PaymentVARCHAR(20)NOTNULL,
PurchaseTimeDATETIMENOTNULL,
PRIMARYKEY(SerialNumber)
商品—顾客:
CREATETABLEGoodsCustomer(
SerialNumberVARCHAR(20)NOTNULL,
GoodsAmontFLOAT,
PRIMARYKEY(SerialNumber,GoodsNumber),
CONSTRAINTC4FOREIGNKEY(SerialNumber)REFERENCESCustomer(SerialNumber),
CONSTRAINTC5FOREIGNKEY(GoodsNumber)REFERENCESGoods(GoodsNumber)
职位:
CREATETABLEPost(
PostNumberCHAR(6)NOTNULLUNIQUE,
PostNameVARCHAR(8)NOTNULL,
WageMONEYNOTNULL,
PRIMARYKEY(PostNumber)
部门:
CREATETABLEDepartment(
DepartmentNumberCHAR(6)NOTNULLUNIQUE,
DepartmentNameVARCHAR(8)NOTNULL,
TelCHAR(11)NOTNULL,
PeopleCountINT,
PRIMARYKEY(DepartmentNumber)
员工:
CREATETABLEEmployment(
EmployeeNumberCHAR(6)NOTNULLUNIQUE,
EmployNameVARCHAR(8)NOTNULL,
PostNumberCHAR(6),
BirthDATETIME,
TelNUMERIC(10,0)NOTNULL,
DepartmentNumberCHAR(6),
IDcardNUMERIC(18,0)NOTNULL,
BankNumberNUMERIC(20,0),
SeniorityINTNOTNULL,
PRIMARYKEY(EmployeeNumber),
CONSTRAINTC6FOREIGNKEY(PostNumber)REFERENCESPost(PostNumber),
CONSTRAINTC7FOREIGNKEY(DepartmentNumber)REFERENCESDepartment(DepartmentNumber)
收银员—顾客:
CREATETABLECashierCustomer(
CashierNumberCHAR(6)NOTNULL,
SatisfactionINT,
PRIMARYKEY(SerialNumber,CashierNumber),
CONSTRAINTC9CHECK(SatisfactionBETWEEN5AND10),
CONSTRAINTC10FOREIGNKEY(SerialNumber)REFERENCESCustomer(SerialNumber),
CONSTRAINTC11FOREIGNKEY(CashierNumber)REFERENCESEmployment(EmployeeNumber)
各表之间的关系:
6.2、数据载入
注:
在数据库中已输入
6.3、设计视图
顾客视图:
CREATEVIEW顾客
AS
SELECTdbo.Customer.SerialNumber,dbo.CashierCustomer.CashierNumber,dbo.GoodsCustomer.GoodsNumber,dbo.Goods.GoodsName,dbo.Goods.Price,
dbo.Goods.Discount,dbo.CashierCustomer.Satisfaction
FROMdbo.CashierCustomerINNERJOIN
dbo.CustomerONdbo.CashierCustomer.SerialNumber=dbo.Customer.SerialNumberINNERJOIN
dbo.GoodsCustomerONdbo.Customer.SerialNumber=dbo.GoodsCustomer.SerialNumberINNERJOIN
dbo.GoodsONdbo.GoodsCustomer.GoodsNumber=dbo.Goods.GoodsNumberSELECTdbo.Customer.SerialNumber,dbo.CashierCustomer.CashierNumber,dbo.GoodsCustomer.GoodsNumber,dbo.Goods.GoodsName,dbo.Goods.Price,
dbo.GoodsONdbo.GoodsCustomer.GoodsNumber=dbo.Goods.GoodsNumber
员工视图:
CREATEVIEW员工
SELECTTOP100PERCENTdbo.Employment.EmployeeNumber,dbo.Employment.EmployName,dbo.Post.PostNumber,dbo.Post.PostName,dbo.Post.Wage,
dbo.Employment.Seniority
FROMdbo.EmploymentINNERJOIN
dbo.PostONdbo.Employment.PostNumber=dbo.Post.PostNumber
ORDERBYdbo.Employment.EmployeeNumber
仓库主管视图:
CREATEVIEW仓库主管
SELECTTOP100PERCENTdbo.Stowage.StowageNumber,dbo.StowageGoods.Category,dbo.StowageGoods.Amount,dbo.Stowage.Volume,dbo.StowageGoods.PurchaseDate,
dbo.Stowage.StowagePrincipal
FROMdbo.StowageINNERJOIN
dbo.StowageGoodsONdbo.S