数据库设计

更新时间:2023-03-08 08:53:32 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

超市跟人们的生活联系非常紧密,给人们的生活提供了很大的方便。而为这样一个庞大而复杂的购物平台,提供一套完备的管理系统支持是很必要的。在现代销售行业中,会员制、积分管理、代金消费的概念已经越来越普及。为了吸引更多消费者,加大销售企业的竞争力。就需要在商场管理系统的基础上建立一个积分管理的子系统,对百货店的会员管理、积分消费机制和POS机硬件系统提供软件支持。积分管理系统具有强大的信息搜集、处理、分析功能,将其引入商场管理系统中,通过积分的管理获得客户更好的信誉,增加客户流量,获得更多的利益。

某超市POS积分管理系统中定期清除积分履历表并备份、定期清除积分更新日志表并备份的功能在系统中起着比较重要的作用。由于商店每天要处理的信息量很大,为了防止数据容量增长过大,考虑到系统安全及稳定的需要,要求定期对数据表做清除备份的工作。月购买额清除及处理的功能则主要实现消费者数据匹配的作用。

开发平台是基于Microsoft SQL Server 2005实现的。本文主要是研究后台数据库的建立。

关键词:信息管理系统;数据库;Microsoft SQL Server 2005

一、系统建设背景

1.1 课题背景及意义

数据库在一个信息管理系统中占有非常重要的地位,数据库结构的设计好坏将直接对 应用系统的效率以及实现的效果产生影响。数据库设计一般包括以下四个部分:数据库需求分析,数据库概念结构设计,数据库逻辑结构设计,数据库物理结构实现。随着我国超市规模的不断扩大,货物种类变得越来越庞大。这就导致信息不断增多,而超市POS机管理是一项琐碎、复杂而又十分细致的工作,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高超市POS机管理的效率,也是超市的科学化、正规化管理的重要条件。这就对超市POS机管理提出了新的要求,用计算机管理系统来管理超市已经成为目前的趋势,使用计算机可以高速,快捷地完成以上工作。在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范数据管理行为,从而提高了管理效率和水平。

1.2 课题开发的目的

本系统是为了更好的实现人事各种信息的管理。本系统主要针对查看员工的各种信息需求所设计的,可以很好的管理数据。通过实习,熟悉数据库的设计、开发过程,掌握数据库设计、开发各阶段的方法,能够根据所给条件和要求,使用SQL Server实现所设计的数据库。

1

二、系统设计介绍

2.1 系统的主要功能

它包括了员工信息、部门信息、供应商信息、会员信息、入库信息、商品信息、销售出货单主信息、销售出货单子信息等内容。在操作上,它集输入、查询、统计和各种处理为一体,信息导入导出可实现信息备份,灵活、专业的报表设计,形象、增强的数据处理,完美的信息图形分析,用户可自定义自开发等功能。 通过对超市管理工作过程的内容和数据流图分析,设计如下面的数据项和数据结构。

1.员工信息:员工编号、姓名、性别、职务、口令、权限级别、身份证号、所属部门编号等。

2.部门信息:部门编号、部门名称。

3.供应商信息:供应商编号、供应商名称、地址、邮政编码、电话号码、税号、银行账号、开户银行、联系人、备注等。

4.会员信息:会员编号、姓名、性别、身份证号、消费总金额、积分等。 5.入库信息:入库编号、入库日期、商品编号、计量单位、入库价格、销售价格、数量、总金额、供应商编号、业务员编号等。

6.商品信息:商品编号、所属类别、数量、单价、商品名称等。

7.销售出货单主信息:销售日期、总金额、是否现金、是否会员、会员编号、收银员编号等。

8.销售出货单子信息:商品编号、数量、单价、折扣比例、金额等。

2.2 数据库概念结构设计

根据上面设计规划出的实体,我们对各个实体具体的描述E-R图如下:

2

员工编号 身份证号 姓名 权限级别 员工 性别 口令 职务 所属部门编号 图1 员工信息E-R图

部门编号 部门 部门名称 图2 部门信息E-R图

数量 入库编号 入库日期

总金额 入库 商品编号 供应商编号 计量单位 入库价格 图3 入库信息E-R图

商品编号 价格 商品名称 数量 商品 所属类别 图4 商业信息E-R图

3

是否现金 是否会员 总金额 会员编号 销售出货单主信息 销售日期 收银员编号 图5 销售出货单主信息E-R图

数量 单价 折扣比例 商品编号 金额 销售出货单子信息 图6 销售出货单子信息E-R图

会员编号 姓名 积分 性别 会员 消费总金额 身份证号 图7 会员信息E-R图

供应商编号 供应商名称 电话号码 地址 税号 邮政编码 供应商 银行账号 备注 开户银行 联系人 图8 供应商信息E-R图

4

实体与实体之间的关系:

部门 管理 员工 入库 属于 消费者 购买 商品

会员

销售出货单注信息 包含 销售出货单子信息 图9 实体与实体之间的关系E-R图 5

提供 供应商

三、数据库逻辑结构设计

3.1 数据库逻辑结构设计

数据库的逻辑结构设计的主要任务是把概念层数据模型转换为组织层数据模

型,即根据数据库的概念结构导出特定的数据库管理系统可以处理的数据库的逻辑结构。

3.2 POS管理系统逻辑结构设计

员工信息表 字段名 数据类型 长度 说明 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 不空 6

描述 员工编号 姓名 性别 职务 口令 权限级别 身份证号 所属部门编号 描述 商品编号 商品名称 所属类别 价格 数量 描述 部门编号 部门名称 描述 供应商编号 供应商名称

Dz Yzbm Dhhm Sh Yhzh Khyh Lxr beizhu

varChar Char varChar varChar varChar Char Char text 20 6 15 3 20 8 8 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 不空

销售出货单主信息 7

描述 会员编号 姓名 性别 身份证号 消费总金额 积分 描述 入库编号 入库日期 商品编号 计量单位 入库价格 销售价格 数量 总金额 供应商编号 业务员编号 描述 库存信息编号 商品编号 库存量

字段名 Xsrq Zje Sfxj Sfhy Hybh Syybh

字段名 Spb Sl Dj Zkbl Je 数据类型 datetime Money Char Char Char Char 长度 8 8 2 2 8 8 说明 不空 不空 不空 可为空 不空,外键 不空,外键 描述 销售日期 总金额 是否现金 是否会员 会员编号 收银员编号 数据类型 Char Int Money Char money 销售出货单子信息 长度 说明 8 不空,外键 4 不空 8 不空 10 不空 8 不空 描述 商品编号 数量 单价 折扣比例 金额

8

四、数据库实现

根据以上的逻辑分析所得到表的关系,我们使用T-SQL语言设计得到数据库和数据表。

4.1 基本表的创建,建表语句

1.creat database glxt

on

(name=pos_dat,

filename=’D:\\pos_ dat.mdf”, size=5, maxsize=20, filegrowth=1) LOG on (name=pos_log,

filename=’D:\\pos_ log.mdf”, size=5, maxsize=20, filegrowth=1)

2.creaat table bm (bmbh char(8)not null constraint PK_bno primary key bmmc char(4) not null ) Go

3.creat table sp (spbh char(8) not null

constraint PK_cno primary key, spmc varchar(20) not null, sslb char(8) not null, sl int not null, jg money not null )

9

Go

4.creat table gys (gysbh char(8) not null constraint PK_dno primary key, gysmc char(8) not null, dz varchar(20) not null, yzbm char(8) not null, dhhm varchar(15) not null, sh varchar(3) not null, yhzh varchar(20) not null, khyh char(8) not null, lxr char(8) not null, beizhu text null ) Go

5.creat table hy (hybh char(8) not null constraint PK_eno primary key, hyname char(6) not null,

sex char(2) check CK_hy sex in (‘男’,‘女’) not null, sfzh varchar(20) not null, xfzje money not null, jf int not null )

6. creat table yg (ygbh char(8) not null constraint PK_fno primary key, ygname char(8) not null,

sex char(2) check CK_yg sex in (‘男’,‘女’) not null, zw char(8) not null, kl varchar(20) not null, qxjb char(4) not null,

10

sfzh varchar(18) not null, ssbmbh char(8) not null,

constraint FK_ano foreign key reference bm(bmbh) ) Go

7.creat table rk (rkbh char(8) not null

constraint PK_gno primary key, xsjg money not null, rkrq datetime not null, spbh char(8) not null

constraint FK_bno foreign key references sp(spbh), ywybh char(8) not null

constraint FK_cno foreign key references yg(ygbh), jldw char(2) not null, rkjg money not null, gysbh char(8) not null

constraint FK_dno foreign key references gsy(gysbh), zje money not null, sl int not null) go

8.creat table zhuxx (xsrp datetime not null, zje money not null,

sfxj char(2) check CK_zhuxx_sfxj in(‘是’,‘否’) not null, sfhy char(2) check CK_zhuxx_sfhy in (‘是’,‘否’) hybh char(8) not null

constraint FK_eno foreign key references hy(hybh), syybh char(8) not null

constraint FK_fno foreign key references yg(ygbh)) go

11

9. creat table zixx (spbh char(8) not null

constraint FK_gno foreign key references sp(spbh), sl int not null, dj money not null, zkbl char(10) not null, je money not null) go

10. creat table kc (kcxxbh char(8) )not null constraint PK_pno primary key, spbh char(8) not null

constraint FK_ino foreign key references sp(spbh), kcl int not null) go

4.2 数据库扩展功能实现

1.CREAT TRIGGER triger_s1 ON rk after insert AS update kc

set kcl =kcl +(select sl from inserted) where spbh=(select spbh from inserted)

2.CREAT TRIGGER triger_kc ON zixx after delete AS update kc

set kcl =kcl -(select sl from deleted) where spbh=(select spbh from deleted)

12

本文来源:https://www.bwwdw.com/article/9zh3.html

Top