超市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图:三、数据库逻辑结构设计员工信息表字段名数据类型长度说明描述YgbhChar8不空,主键员工编号NameChar8不空姓名SexChar2不空‘男’、‘女’性别ZwChar10不空职务KlvarChar20不空口令QxjbChar1不空权限级别SfzhChar18不空,唯一约束身份证号ssbmbhchar4不空,外键所属部门编号商品信息字段名数据类型长度说明描述Spbhchar8不空,主键商品编号Spmcvarchar20不空商品名称Sslbchar8不空所属类别Jgmoney8不空价格slint4不空数量部门管理员工入库商品提供购买消费者供应商属于会员销售出货单主信息销售出货单子信息包含供应商信息表字段名数据类型长度说明描述GysbhChar8不空,主键供应商编号GysmcChar8不空供应商名称DzvarChar20不空地址YzbmChar6不空邮政编码Dhhmvarchar15不空电话号码ShvarChar3不空税号YhzhvarChar20不空银行帐号KhyhChar8不空开户银行LxrChar8不空联系人beizhutext16备注入库信息表字段名数据类型长度说明描述Rkbhchar8不空,主键入库编号RkrqDatetime8不空入库日期Spbhchar8不空,外键商品编号JldwChar2不空计量单位RkjgMoney8不空入库价格XsjgMoney8不空销售价格Slint4不空数量ZjeMoney8不空总金额Gysbhchar8不空,外键供应商编号ywybhchar8不空,外键业务员编号部门信息表字段名数据类型长度说明描述bmbhchar8不空,主键部门编号bmmcchar4不空部门名称会员信息表字段名数据类型长度说明描述HybhChar8不空,主键会员编号NameChar6不空姓名SexChar2不空,’男’、’女’性别SfzhvarChar20不空身份证号xfzjemoney8不空消费总金额jfint4不空积分销售出货单子信息字段名数据类型长度说明描述Spbhchar8不空,外键商品编号Slint4不空数量Djmoney8不空单价Zkblchar10不空折扣比例Jemoney8不空金额库存信息表字段名数据类型长度说明描述kcxxbhchar8不空,主键库存信息编号Spbhchar8不空,外键商品编号kclint4不空库存量销售出货单主信息字段名数据类型长度说明描述Xsrqdatetime8不空销售日期ZjeMoney8不空总金额SfxjChar2不空是否现金Sfhychar2可为空是否会员HybhChar8不空,外键会员编号Syybhchar8不空,外键收银号编号四、数据库物理结构实现根据以上的逻辑分析所得到表的关系,我们使用T-SQL语言设计得到数据库和数据表。1.createdatabaseglxton(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)notnullconstraintPK_bnoprimarykey,bmmcchar(4)notnull)go3.createtablesp(spbhchar(8)notnullconstraintPK_cnoprimarykey,spmcvarchar(20)notnull,sslbchar(8)notnull,slintnotnull,jgmoneynotnull)go4.createtablegys(gysbhchar(8)notnullconstraintPK_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)go5.createtablehy(hybhchar(8)notnullconstraintPK_enoprimarykey,hynamechar(6)notnull,sexchar(2)checkCK_hysexin(‘男’,’女’)notnull,sfzhvarchar(20)notnull,xfzjemoneynotnull,jfintnotnull)Go6.createtableyg(ygbhchar(8)notnullconstraintPK_fnoprimarykey,ygnamechar(8)notnull,sexchar(2)checkCK_ygsexin(‘男’,’女’)notnull,zwchar(8)notnull,klvarchar(20)notnull,qxjbchar(4)notnull,sfzhvarchar(18)notnull,ssbmbhchar(8)notnullconstraintFK_anoforeignkeyreferencesbm(bmbh))go7.createtablerk(rkbhchar(8)notnullconstraintPK_gnoprimarykey,xsjgmoneynotnull,rkrqdatetimenotnull,spbhchar(8)notnullconstraintFK_bnoforeignkeyreferencessp(spbh),ywybhchar(8)notnullconstraintFK_cnoforeignkeyreferencesyg(ygbh),jldwchar(2)notnull,rkjgmoneynotnull,gysbhchar(8)notnullconstraintFK_dnoforeignkeyreferencesgys(gysbh),zjemoneynotnull,slintnotnull)go8.createtablezhuxx(xsrqdatetimenotnull,zjemoneynotnull,sfxjchar(2)checkCK_zhuxx_sfxjin(‘是’,’否’)notnull,sfhychar(2)checkCK_zhuxx_sfhyin(‘是’,’否’),hybhchar(8)notnullconstraintFK_enoforeignkeyreferenceshy(hybh),syybhchar(8)notnullconstraintFK_fnoforeignkeyreferencesyg(ygbh))go9.createtablezixx(spbhchar(8)notnullconstraintFK_gnoforeignkeyreferencessp(spbh),slintnotnull,djmoneynotnull,zkblchar(10)notnull,jemoneynotnull,)go10.createtablekc(kcxxbhchar(8)notnullconstraintPK_pnoprimarykey,spbhchar(8)notnullconstraintFK_inoforeignkeyreferencessp(spbh),kclintnotnull)go