店铺管理超市POS系统的数据库设计.docx
《店铺管理超市POS系统的数据库设计.docx》由会员分享,可在线阅读,更多相关《店铺管理超市POS系统的数据库设计.docx(14页珍藏版)》请在冰豆网上搜索。
店铺管理超市POS系统的数据库设计
超市POS管理系统
数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构的设计好坏将直接对应用系统的效率以及实现的效果产生影响。
数据库设计一般包括以下四个部分:
数据库需求分析、数据库概念结构设计、数据库逻辑结构设计、数据库物理结构实现。
一、数据库需求分析
通过对超市管理工作过程的内容和数据流图分析,设计如下面的数据项和数据结构。
1、员工信息,包括的数据项有:
员工编号,姓名,性别,职务,口令,权限级别、身份证号,所属部门编号等。
2、部门信息,包括的数据项有:
部门编号,部门名称。
3、供应商信息,包括的数据项有:
供应商编号,供应商名称,地址,邮政编码,电话号码,税号,银行帐号,开户银行,联系人,备注等。
4、会员信息,包括的数据项有:
会员编号,姓名,性别,身份证号,消费总金额,积分等。
5、入库信息,包括的数据项有:
入库编号,入库日期,商品编号,计量单位,入库价格,销售价格,数量,总金额,供应商编号,业务员编号等。
6、商品信息,包括的数据项有:
商品编号,所属类别,数量,单价,商品名称等。
7、销售出货单主信息,包括的数据项有:
销售日期,总金额,是否现金,是否会员,会员编号、收银号编号等。
8、销售出货单子信息,包括的数据项有:
商品编号,数量,单价,折扣比例,金额等。
二、数据库概念结构设计
根据上面设计规划出的实体,我们对各个实体具体的描述E-R图如下:
图1员工信息E-R图
图2部门信息E-R图
图3入库信息E-R图
图4商品信息E-R图
图5销售出货单主信息E-R图
图6销售出货单子信息E-R图
图7会员信息E-R图
图8供应商信息E-R图
实体与实体之间的关系E-R图:
三、数据库逻辑结构设计
员工信息表
字段名
数据类型
长度
说明
描述
Ygbh
Char
8
不空,主键
员工编号
Name
Char
8
不空
姓名
Sex
Char
2
不空‘男’、‘女’
性别
Zw
Char
10
不空
职务
Kl
varChar
20
不空
口令
Qxjb
Char
1
不空
权限级别
Sfzh
Char
18
不空,唯一约束
身份证号
ssbmbh
char
4
不空,外键
所属部门编号
商品信息
字段名
数据类型
长度
说明
描述
Spbh
char
8
不空,主键
商品编号
Spmc
varchar
20
不空
商品名称
Sslb
char
8
不空
所属类别
Jg
money
8
不空
价格
sl
int
4
不空
数量
部门信息表
字段名
数据类型
长度
说明
描述
bmbh
char
8
不空,主键
部门编号
bmmc
char
4
不空
部门名称
供应商信息表
字段名
数据类型
长度
说明
描述
Gysbh
Char
8
不空,主键
供应商编号
Gysmc
Char
8
不空
供应商名称
Dz
varChar
20
不空
地址
Yzbm
Char
6
不空
邮政编码
Dhhm
varchar
15
不空
电话号码
Sh
varChar
3
不空
税号
Yhzh
varChar
20
不空
银行帐号
Khyh
Char
8
不空
开户银行
Lxr
Char
8
不空
联系人
beizhu
text
16
备注
会员信息表
字段名
数据类型
长度
说明
描述
Hybh
Char
8
不空,主键
会员编号
Name
Char
6
不空
姓名
Sex
Char
2
不空,’男’、’女’
性别
Sfzh
varChar
20
不空
身份证号
xfzje
money
8
不空
消费总金额
jf
int
4
不空
积分
入库信息表
字段名
数据类型
长度
说明
描述
Rkbh
char
8
不空,主键
入库编号
Rkrq
Datetime
8
不空
入库日期
Spbh
char
8
不空,外键
商品编号
Jldw
Char
2
不空
计量单位
Rkjg
Money
8
不空
入库价格
Xsjg
Money
8
不空
销售价格
Sl
int
4
不空
数量
Zje
Money
8
不空
总金额
Gysbh
char
8
不空,外键
供应商编号
ywybh
char
8
不空,外键
业务员编号
库存信息表
字段名
数据类型
长度
说明
描述
kcxxbh
char
8
不空,主键
库存信息编号
Spbh
char
8
不空,外键
商品编号
kcl
int
4
不空
库存量
销售出货单主信息
字段名
数据类型
长度
说明
描述
Xsrq
datetime
8
不空
销售日期
Zje
Money
8
不空
总金额
Sfxj
Char
2
不空
是否现金
Sfhy
char
2
可为空
是否会员
Hybh
Char
8
不空,外键
会员编号
Syybh
char
8
不空,外键
收银号编号
销售出货单子信息
字段名
数据类型
长度
说明
描述
Spbh
char
8
不空,外键
商品编号
Sl
int
4
不空
数量
Dj
money
8
不空
单价
Zkbl
char
10
不空
折扣比例
Je
money
8
不空
金额
四、数据库物理结构实现
根据以上的逻辑分析所得到表的关系,我们使用T-SQL语言设计得到数据库和数据表。
1.createdatabaseglxt
on
(name=pos_dat,
filename='D:
\pos_dat.mdf',
size=5,
maxsize=20,
filegrowth=1)
LOGon
(name=pos_log,
filename='D:
\pos_log.ldf',
size=5,
maxsize=20,
filegrowth=1)
2.createtablebm
(bmbhchar(8)notnull
constraintPK_bnoprimarykey,
bmmcchar(4)notnull
)
go
3.createtablesp
(spbhchar(8)notnull
constraintPK_cnoprimarykey,
spmcvarchar(20)notnull,
sslbchar(8)notnull,
slintnotnull,
jgmoneynotnull
)
go
4.createtablegys
(gysbhchar(8)notnull
constraintPK_dnoprimarykey,
gysmcchar(8)notnull,
dzvarchar(20)notnull,
yzbmchar(8)notnull,
dhhmvarchar(15)notnull,
shvarchar(3)notnull,
yhzhvarchar(20)notnull,
khyhchar(8)notnull,
lxrchar(8)notnull,
beizhutextnull
)
go
5.createtablehy
(hybhchar(8)notnull
constraintPK_enoprimarykey,
hynamechar(6)notnull,
sexchar
(2)checkCK_hysexin(‘男’,’女’)notnull,
sfzhvarchar(20)notnull,
xfzjemoneynotnull,
jfintnotnull
)
Go
6.createtableyg
(ygbhchar(8)notnull
constraintPK_fnoprimarykey,
ygnamechar(8)notnull,
sexchar
(2)checkCK_ygsexin(‘男’,’女’)notnull,
zwchar(8)notnull,
klvarchar(20)notnull,
qxjbchar(4)notnull,
sfzhvarchar(18)notnull,
ssbmbhchar(8)notnull
constraintFK_anoforeignkeyreferencesbm(bmbh)
)
go
7.createtablerk
(rkbhchar(8)notnull
constraintPK_gnoprimarykey,
xsjgmoneynotnull,
rkrqdatetimenotnull,
spbhchar(8)notnull
constraintFK_bnoforeignkeyreferencessp(spbh),
ywybhchar(8)notnull
constraintFK_cnoforeignkeyreferencesyg(ygbh),
jldwchar
(2)notnull,
rkjgmoneynotnull,
gysbhchar(8)notnull
constraintFK_dnoforeignkeyreferencesgys(gysbh),
zjemoneynotnull,
slintnotnull
)
go
8.createtablezhuxx
(xsrqdatetimenotnull,
zjemoneynotnull,
sfxjchar
(2)checkCK_zhuxx_sfxjin(‘是’,’否’)notnull,
sfhychar
(2)checkCK_zhuxx_sfhyin(‘是’,’否’),
hybhchar(8)notnull
constraintFK_enoforeignkeyreferenceshy(hybh),
syybhchar(8)notnull
constraintFK_fnoforeignkeyreferencesyg(ygbh)
)
go
9.createtablezixx
(spbhchar(8)notnull
constraintFK_gnoforeignkeyreferencessp(spbh),
slintnotnull,
djmoneynotnull,
zkblchar(10)notnull,
jemoneynotnull,
)
go
10.createtablekc
(kcxxbhchar(8)notnull
constraintPK_pnoprimarykey,
spbhchar(8)notnull
constraintFK_inoforeignkeyreferencessp(spbh),
kclintnotnull
)
go
五、数据库扩展功能实现
1.CREATETRIGGERtriger_sl
ONrk
afterinsert
AS
updatekc
setkcl=kcl+(selectslfrominserted)
wherespbh=(selectspbhfrominserted)
2.CREATETRIGGERtriger_kc
ONzixx
afterdelete
AS
updatekc
setkcl=kcl-(selectslfromdeleted)
wherespbh=(selectspbhfromdeleted)