当前位置:文档之家› 基于JAVA的超市进销存管理系统毕业论文

基于JAVA的超市进销存管理系统毕业论文

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

摘要

由于超市行业的竞争越来越强,超市规模的发展不断扩大,商品数量和种类急剧增加,有关商品的信息量也随之增长。超市随时都需要对商品各种信息进行统计分析。

超市销售管理系统是基于J2EE的技术架构,使用JSP构建动态网页和Servlet 组件,使用Tomcat作为web服务器, 用JDBC连接的MySql数据库作为存储对象,在设计和完成的过程中加深对数据库查询方法的理解,也进一步的了解MVC的设计模式。系统主要实现的功能:管理员信息的管理、销售管理、员工管理、供应商管理。通过上述功能实现对进货、销售及员工等基本的信息采集和处理,辅助提高超市的决策水平;使用该系统,可以提升超市的管理水平和运作效率,降低经营成本,提高管理人员的效益,增强超市扩张力。

关键词: J2EE;Servlet;JSP;MySql;销售管理

Abstract

With the competition between supermarkets becoming stronger and stronger, supermarkets themselves becoming larger and larger, and the quantity as well as the varieties of merchandise increasing sharply, the quantity of information about merchandise is becoming larger, too. The supermarket needs to be ready to make statistical analysis of all the information about the merchandise all the time.

This system is based on the technological architecture of Java 2 Platform Enterprise Edition, use of JSP Construction of dynamic pages and Servlet as its components,using Tomcat as a web server, using the MySql database as a storage object and visiting to the database are through module JDBC link, in the design and complete the process of deepening the understanding of the database query methods, but also a better understanding of the MVC design pattern.The system compromises the following modules: user right management, sales management, staff management and supplier management, hence managing the recording and inquiring of the information about purchases, sales and employees. Supermarkets may make better decisions by collecting and processing some basic information. Through this system, the management and operational efficiency can be improved, the operating cost can be reduced, the efficiency of the staff members can be promoted and the supermarket’s expandability can become stronger.

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊Key words: J2EE;Servlet;JSP;MySql;sales management

目录

1 绪论 (1)

2 开发环境及开发工具的介绍 (2)

2.1 关于WEB (2)

2.2 J2EE的优势 (2)

2.3 J SP语言和HTML语言 (3)

2.4 关于Servlet (3)

2.5 M ySql数据库 (4)

2.5.1 MySql的优势 (4)

2.6 T omcat服务器 (5)

2.6.1 Tomcat 服务器简介 (5)

2.6.2 TomCat的优势 (5)

3 需求分析和可行性分析 (7)

3.1 系统用户及其功能分析 (7)

3.2 系统的模块划分 (7)

3.3 系统运行环境 (8)

3.4 技术可行性 (8)

3.5 操作可行性 (8)

4 系统总体设计 (9)

4.1 设计思想 (9)

4.2 系统功能模块图 (10)

4.3 实体关系图 (10)

4.4 数据库设计 (14)

4.5 系统的用例图 (18)

4.6 系统登录时序图 (21)

5 系统的详细设计 (22)

5.1 系统模块的划分 (22)

5.2 模块流程和具体实现 (22)

5.2.1 用户登录模块 (22)

5.2.2 商品的销售管理模块 (24)

5.2.3 员工管理模块 (28)

5.2.4 供应商管理模块 (29)

5.2.5 管理员信息管理模块 (31)

6 系统测试 (34)

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

6.1 模块测试 (34)

结束语 (36)

致谢 (37)

参考文献 (38)

附录部分源代码 (39)

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

绪论

随着现代科学技术的迅猛发展,计算机技术已经渗透到商业领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势。

超市形态的高速发展,其经营管理也变得愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,对于超市的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必可少的。原始的人工管理已无法应对这复杂的市场。依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力、物力,提高了员工的工作效率,减轻了劳动强度,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。

通过这个系统的开发,我将细致的分析如何基于J2EE协议,运用Servlet,JDBC,MySql等技术实现一个超市销售管理系统的。这次设计,基本上实现了超市管理所必需的几个功能,例如管理员模块中,设有超级管理员和普通管理员,管理员的权限不同,超级管理员有管理普通管理员的权限。在系统设计过程中,我尽量采用易懂易读的人机界面,使用户可以在短期内完全掌握,力求数据的完整和处理的正确性。在此基础上优化程序代码,加速系统运行和减少对系统资源的占用。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

开发环境及开发工具的介绍

关于WEB

WEB是一组原则:互联网作为其唯一的平台,利用集体智慧,数据,没有软件发布周期,轻量级编程。WEB的主要特点就是用户可以通过浏览器从WEB系统上获取信息,用户既是WEB系统的消费者(信息获取者),同时也是这个系统的内容制造者。WEB还有一个很重要的特点就是其是动态的,表现在交互性上,它实现了超连接,用户的浏览顺序和所到站点完全由用户自己决定。另外用户通过填写表单(FORM)的形式向服务器提交请求,服务器可以根据用户的请求返回相应信息。在WEB2.0中,用户的角色则被提高到了一个不同的位置,它更加重视用户的交互作用。

WEB拥有一个被称为"无状态"的协议,这是因为服务器在发送给客户机应答信息后便遗忘了此次交互。在"有状态"的协议中客户机与服务器要记住许多关于彼此和它们的各种请求与应答信息。

J2EE的优势

J2EE(Java 2 Platform Enterprise Edition)是使用Java技术开发企业级应用的一种事实上的工业标准,它是Java技术不断适应和促进企业级应用过程的产物(目前,Java平台有三个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE(Java 2 Platform Standard Edition)和适用于企业级应用的J2EE(Java 2 Platform Enterprise Edition))。J2EE是一个标准,而不是一个现成的产品。各个平台开发商根据J2EE规范分别开发了不同的J2EE应用服务器,J2EE应用服务器是J2EE企业级应用的部署平台。因此,使用J2EE技术开发的企业级应用可以部署在各种J2EE应用服务器上。

采用J2EE的目的是为了克服传统Client/Server模式的弊病,迎合Browser/Server架构的潮流,为了应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。其主要的优点是:高效的开发,持续性服务,支持异构环境,可伸缩性,稳定的可用性。由于J2EE的这些优点使得采用J2EE应用架构系统具备可扩充性,当系统平台发生变化时,系统能够和新平台很好的融合在一起,这样使得系统具有很好的伸缩性。

为了推广并规范化使用J2EE架构企业级应用的体系架构,Sun同时给出了一个建议性的J2EE应用设计模型:J2EE Blueprints。J2EE Blueprints提供了实施J2EE 企业级应用的体系架构、设计模式和相关的代码,通过应用J2EE Blueprints所描述的体系模型,能够部分简化架构企业级应用这项复杂的工作。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊JSP语言和HTML语言

HTML(Hyper Text Markup Language 超文本标记语言)是一种用来制作超文本文档的简单标记语言。HTML文档,它能独立于各种操作系统平台;其通过利用各种标记(tags)来标识文档的结构以及标识超链接(Hyperlink)的信息,能描述了文档的结构格式,但并不能精确地定义文档信息必须如何显示和排列,而只是建议Web浏览器(如Mosiac,Netscape等)应该如何显示和排列这些信息,最终在用户面前的显示结果取决于Web浏览器本身的显示风格及其对标记的解释能力。

而JSP语言是一种建立动态网页的技术标准,在传统的HTML语言中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。JSP技术使用Java 编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。

Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。

JSP与Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML 文本,因此客户端只要有浏览器就能浏览。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Servlet 是JSP 的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。

关于Servlet

Servlet是基于Http协议的, 运行在web服务器中的程序,与传统的从命令行启动的Java应用程序不同。Servlet是运行在web容器中,这个web容器可以控制Servlet对象的生命周期,控制请求由Servlet对象处理。

Servlet可以用来生成动态的Web页面,可以针对不同的请求作出不同的响应,可以实现页面的流转,Servlet可以充当MVC模式中的Controller模块,他可以控制信息的流向。Servlet由Web服务器进行加载,该Web服务器必须包含Servlet的Java虚拟机。Servlet,是接受来自网络的请求(form表单,以及其他的请求),并对不同请求作出不同的响应。

MVC即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化,MVC可以让整个逻辑很清晰,这种思想和思维和人的思维很接近,很容易被理解。在本系统中承担MVC中Controller角色的是一个Servlet。JSP完成View的角色,JavaBean是框架中的Model。MVC框架图如图2-1所示:

┊┊┊┊┊┊┊┊┊┊┊

┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

图2-1 MVC框架图

MySql数据库

数据库(Database)是一系列信息资源的集合。对于任何一个项目来讲数据库是必不可少的,因为一个项目对应着的大量数据的不可能存在价格昂贵且不安全的内存中在中。一个数据库中,与一个项目有关的所有信息都可以叫做一条记录(Record)。每一条记录都是由一系列的字段(Field)组成的。一系列记录的集合就构成了数据表格,及我们常说的表(Table)。对于一个简单的“平面文件”的数据库来说,它仅包含了一个数据表格,而对一个“关系型”数据库来说,它却包含两个或两个以上的数据表格,表格的各字段之间存在这一种或多种关系通常可以把这种关系叫做“链接”。

MySql的优势

MySQL作为一种开放源码数据库,以其简单易用的特点广泛被广大用户采用,MySQL虽然是免费的,但同Oracle, Sybase, Informix, Db2等商业数据库一样,具有数据库系统的通用性:

1)数据库管理系统。我们知道,所谓的数据库就是一些结构化的数据的联合体,要提供对这些数据的存取、增加、修改、删除或更加复杂的数据抽取等操作,需要有一个支撑系统,这就是数据库管理系统(DBMS),MySQL完全具有这方面的功能。

2)关系型数据库管理系统。在数据库的发展历程中,曾出现过多种不同形式的数据库系统,但关系型数据库管理系统(RDBMS)以其优越性而被广为采用,象现在几种广泛使用的数据库全为关系型数据库。同样,MySQL也是关系型的数据库系统,支持标准的结构化查询语言(Structured Query Language)。

3)开放源码数据库。同商业性的数据库相比,这是MySQL最大的特点。MySQL 的源码是公开的,这就意味着任何人,只要遵守GPL的规则都可以对MySQL的源码使

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊用、修改以符合自己特殊的需求。

4)技术特点。MySQL是C/S架构的服务器,服务器端是多线程的,为客户端提供了不同的程序接口和链接库,如C、C++、Java、Perl、PHP、Tcl等,也提供了简单的管理工具,如mysqladmin,mysql等。

MySQL有如此多的特点,又由于其免费的特点,这就给许多的中小应用提供了不错的选择。尤其是对一些中小企业,无论是从降低成本,还是从性能方面,采用MySQL 作为其数据支撑系统,都是一种可行的方案。但也应当注意,采用MySQL作为应用数据库,就意味着所有的问题都需要自己解决,要承担一定的风险。

Tomcat服务器

Tomcat 服务器简介

Tomcat是web服务器的一种,那么它就有web服务器的基本功能:

1.接受请求

2.请求的合法性检查,包括安全性屏蔽

3.针对请求获取并制作数据,包括Java脚本和程序、CGI脚本和程序、为文件设置适当的MIME类型来对数据进行前期处理和后期处理

4.把信息发送给提出请求的客户机

Tomcat是一个免费的开源的Serlvet容器,最新的Servlet和JSP规范总能在Tomcat中得到体现。Tomcat中采用了Servlet容器:Catalina,完整的实现了Servlet2.3和Jsp1.2规范。由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。

TomCat的优势

Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是,它的处理静态Html的能力与Apache相比就不尽人意。故可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理Jsp和Servlet.这种集成只需要修改一下Apache和Tomcat的配置文件即可。Tomcat服务器的安装和配置

在开始安装之前,要先安装JDK,安装好后设置环境变量,步骤为:右击“我的电脑”==》属性==》高级==》环境变量==》新建;在系统环境变量中增加一个环境变量,变量名为JAVA_HOME,其值为JDK的安装路径。验证有没有安成功的方法是在DOS窗口中输入命令javac,根据返回信息判断。

然后再安装TOMCAT。安装完后,也在系统环境变量中增加一个环境变量,变量名为CATALINA_HOME,变量值为Tomcat的安装路径,不需到bin目录,如:CATALINA_HOME=d:\Tomcat 5.0;

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

最后还要在系统变量名CLASSPATH的之后加上“;%CATALINA_HOME%\common\lib”,这是一定要注意的。这些都完成后,打开Tomcat 服务器,启动浏览器,在地址栏上输入:http://localhost:8080,若出现以下界面说明安装成功。

在Tomcat中,应用程序的部署很简单,只需将应用程序放到Tomcat的webapp 目录下,Tomcat会自动检测到这个文件。在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为Servlet文件,然后编译。编译以后,访问将会很快。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

需求分析和可行性分析

系统用户及其功能分析

为了便于超市的管理,超市管理员的权限必须有所差异。系统用户主要分为两种:超级管理员和普通管理员。超级管理员就是超市的总经理,普通管理员对应超市各部门的管理员。超级管理员和普通管理员都有修改自己信息的权限,但是普通管理员不能自己修改其用户名和其所在部门,若需要修该或发生调到,必须由超级管理员来修改。其他权限一样,都可以进行销售管理,员工管理,供应商的管理,管理的操作都会记录下来。

系统的模块划分

本系统实现一个超市后台管理所具有的基本功能,包括商品的进货管理,查看进货表单;商品的库存管理,操作商品的上架数;对上架商品的模糊查询和关键字查询;对商品信息进行增删改查,设置商品的上架价格,数量;商品销售量信息查询的实现;部门的增加和修改;普通员工信息的查询、增加和删除;管理员的登录,管理员个人资料修改,超级管理员可以对普通管理员进行增删改查,对于登录的不同管理员进行的操作做相应的记录;供应商信息的增加、删除和修改。主要模块划分如下:

1. 供应商管理:实现供应商信息的增加、修改和删除,按选择条件的精确查找和模糊查找。

2.销售管理:实现商品的进货,其中涉及到到供货商,若没有供应商不能完成进货;同一批进货对应同一个进货单号。进货表单的查询,记录下商品进货时的初始信息,和实施该操作的管理员信息。进完货后,到库存管理,库存的管理就是实现库存量的查询,实现商品的上架;对已上架商品的管理主要实现已上架商品信息的模糊和关键字查询;信息的修改,其中包括商品的上架数的修改和价格的修改,商品的删除;商品销售信息的统计查询,包括已售出数量,库存量,进货量。

3.员工管理:普通员工的模糊查找和精确查找、增加、删除和修改普通员工信息;增加部门和修改部门信息,得到该部门的总体人数,部门信息发生变化时,相应的员工信息发生变化,员工转向其他部门时,相应的部门的总人数发生变化。为信息的安全考虑,管理员的信息不在普通员工信息列表。

4. 权限管理:不管是超级管理员还是普通管理员都可以对自己的信息进行修改;作为超级管理员可以对普通管理员的信息进行修改,删除和添加普通管理员的权限;若普通管理员所在部门发生改变,则部门的信息相应的发生变化。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

系统运行环境

硬件需求:硬盘20G/内存256M及以上配置,要求为销售分配足够的数据库磁

盘空间

推荐配置:硬盘40G/内存512M

操作系统需求: Windows2000及以上操作系统 ( 推荐 ) ,也可以使用 Sun

Solaris 等 Linux 操作系统

数据库软件需求: MySql数据库(推荐)

中间件软件需求:Tomcat系列服务器。

技术可行性

超市销售管理系统,可以基于J2EE平台,采用Java语言,数据量小,任何一

个数据库都可以满足要求。实现过程中可以用JDBC,Hibernate等连接数据库,并可

以使用SQL语句进行查询、插入、删除、更新等操作,功能实现不复杂。已经学习过

数据库、软件工程等相关课程,而语言基本思想大致是一样的,Java语言掌握起来

应该没有问题。再者,网上信息特别丰富,可以上网查找有关资料,在技术方面有指

导老师可以进行指导,还可以上网查询相关资料。因此,在技术方面实现本系统是不

存在问题的。

操作可行性

由于本系统是基于Java语言开发的,它具有跨平台性,可以运行在Linux和windows下。软件操作界面简洁,软件的操作简单、易学易用,非计算机专业人士都

能熟练使用。

由技术可行性、操作可行性的研究,可以得出结论,超市销售管理系统的开发是

完全可行的。

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

系统总体设计

设计思想

由于考虑到C/S架构的种种弊端,如在数据库应用中,数据的储存管理功能是“透明”的,没有对底层的数据库操作进行封装,都是在应用程序中,造成了扩展性,安全性方面不是很好;C/S之间的协议不一定是WEB协议,造成了平台的独立性;C/S 架构中有很多服务层的功能是在客户端实现的,客户端要处理大量数据,这样造成服务器的负重过轻;重要的是C/S架构高昂的维护成本且投资大,因为C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。而且针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在Java这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

故本系统采用基于B/S架构下的多层结构应用系统总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。并且每个层对对上层公开API,但具体的实现细节对外透明。当某一层发生变化,只要API 不变,不会影响其他层的实现。系统的分层结构图如下所示:B/S结构简单的说就是三层,分别为客户机软件(即浏览器)、应用程序服务器和数据库服务器,用户的所有请求都由应用程序服务器来处理。系统的整体架构如下图4-1:

图4-1 系统架构图

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

DAO层实现对数据库的各种操作,主要是SQL语句执行的数据更新、插入和删除,其中用JDBC实现对数据库的连接。业务逻辑层实现的是对DAO层的调用,实现该有的业务逻辑。表述层用JSP组件实现。

系统功能模块图

根据需求分析,系统主要分为四个主要功能模块,功能模块图如下:

图 4-2 功能模块图

实体关系图

1. 管理员:为了区分管理员的权限,用权限属性来表示。密码是用来管理员登录该系统时验证合法性的,部门名称表示管理员所属的部门,名字对应的是管理员名字。其中编号是标识管理员唯一性的属性,完全与业务逻辑无关,在数据库表中设置编号为顺序自动增加的。其他对应的都是管理员的基本信息,比如说住址,名字、性别、年龄。联系电话。和实体部门之间是多对一的关系,一个部门可以设定对个管理员。管理员实体对应的 E-R图如下:

┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊

┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊

2.部门:部门有三个属性,部门名,部门编号和部门总人数,部门编号作为一个部门的唯一标识。每当增加一个普通员工或普通管理员时,都要选择所在部门,对应的就是该部门的总人数要发生改变,当部门名发生变化时,对应的原来是该部门的员工的信息也要发生变化。部门实体对应的E-R 图如下:

3.员工:部门名称表示的是员工所属的部门,和部门实体关系是多对一的关系,一个部门有多个员工。员工的唯一标识属性就是员工编号,其中属性工作时间表示的是员工的参加工作时间,这是手动输入的,便于修改。员工名表示员工的姓名。超市可以有相同名字的员工。实体对应的E-R 图如下:

图 4-5 员工E-R 图

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

4.供应商:属性供应商编号,是供应商的唯一性标识。其中很重要的属性有供应商供货的类型以及供货日期,供应商每次供货后,在对应的进货表单中要显示交易的日期即供货日期和供应商品的类型,便于进货的管理。其他对应的是供货商名称,联系电话和地址。供货商实体对应的E-R图如下:

图4-6 供应商E-R图

5.商品:由于商品对应的信息很多,有进货信息,库存信息,销售信息。

进货涉及到属性比较多,其中要记录所进货的商品信息和提供商品的供应商信息,其属性有进货单编号,每次进货会有不同的商品,那么不同的商品对应同一个进货单编号,表示这些商品是同一次的进货。操作员对应该次进货的负责人即当前的系统的操作员。商品编号、商品类型、商品名称、进货量、价格分别描述的是进货商品的编号,商品是属于食品、电器等中的哪一种类型,商品名,该商品的进货量和进货价格。供货商编号表示提供商品的供应商编号,若输入供应商编号不存在,则不能完成该次进货。进货商品信息对应的E-R图如下:

图 4-7 进货商品信息E-R图

再就是库存,库存反映的是某一种商品在库存中的数量,商品编号用来标识商品,库存量表示该类商品在仓库中的剩余量。当进货同一种商品时,库存中该商品编号对

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊应的库存量发生变化。商品类型、商品名称和进货商品信息中的属性表示的意思是一样的。库存实体对应的E-R图如下:

已上架商品信息表示的是已经从库存中到柜台上卖的商品信息,属性商品编号是商品的唯一标识,上架数表示的是商品拿到柜台上卖的商品数。销售价表示的是商品卖出去的价格,库存量表示商品在库存中的剩余量。已上架商品信息实体E-R图如下:

图 4-9 上架商品信息E-R图

新增上架商品信息表示在库存中有但还未拿到柜台上卖的商品信息,包含五种属性:商品编号,商品名称,商品类型,上架数和售价。其中上架数和售价分别表示的是新商品要拿到柜台上卖的数量和价格。

图 4-10 新增上架商品信息E-R图

6.实体之间存在依赖关系。一个部门对应多个员工,并且一个部门还存在一个或多个管理员。但一个系统的超级管理员只有一位。管理员和商品间的关系是管理员从供应商那里进货,对商品上架。供应商编号建立供应商和进货之间的关系。

实体之间的关系图如下:

┊┊┊┊┊┊┊┊┊┊┊┊

┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊

图 4-11实体间E-R图

数据库设计

数据库对于数据存储的实现通过表的形势,总体上一个实体对应一个数据库表,实体之间存在的依赖关系,那么体现在数据库中就是数据库表的关联关系。在程序设计中DAO层中充分的应用这种关系的是SQL语句,SQL语句实现表之间的链接。其中涉及到非空性和字段长度的限制。下面介绍该系统用到的数据库表。

1.进货表用来存储进货商品具体信息,设计出stock表如下:

CREATE TABLE stock(

id char(6) NOT NULL,

Cargo_ID char(6) NOT NULL,

Stock_Num int(8) NOT NULL,

Stock_Price double(8,3) NOT NULL,

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ Stock_Date date NOT NULL,

Pro_ID char(6) NOT NULL,

Mana_Name varchar(15) NOT NULL

) SET DEFAULT CHARSET=UTF8;

2.库存表专门用来存放商品的编号和库存量,设计出的storage表如下:

其对应于MySql数据库的建表语句为:

CREATE TABLE storage(

Cargo_ID char(6) NOT NULL,

Storage_Num int(8) NOT NULL,

PRIMARY KEY (Cargo_ID)

) SET DEFAULT CHARSET=utf8;

3.商品信息表是为了提高数据库中数据的存储效率和减少数据库表的数据冗

余,专门用来存储商品的详细信息,设计出的cargo表如下:

其对应MySql数据库的建表语句为:

CREATE TABLE cargo (

Cargo_ID char(6) NOT NULL,

Cargo_Name varchar(50) NOT NULL,

Cargo_Type varchar(20) NOT NULL,

PRIMARY KEY (Cargo_ID)

) SET DEFAULT CHARSET=utf8;

4.销售表用来存储上架商品的信息,设计的sell表如下:

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊其对应MySql数据库的建表语句为:

CREATE TABLE sell(

Cargo_ID char(6) NOT NULL,

Sell_Num int(8) NOT NULL,

Sell_Price double(8,3) NOT NULL,

PRIMARY KEY (Cargo_ID)

) SET DEFAULT CHARSET=utf8;

5.供应商表记录提供商品的商家的具体信息,provider表的设计如下:

实体对应于MySql数据库的建表语句为:

CREATE TABLE provider (

Pro_ID char(6) NOT NULL,

Pro_Name varchar(20) NOT NULL,

Pro_Tel varchar(11) NOT NULL,

Pro_Address varchar(50) NOT NULL,

Cargo_Type char(20) NOT NULL,

Pro_Date date NOT NULL,

PRIMARY KEY (Pro_ID)

) SET DEFAULT CHARSET=utf8;

6.部门表用来记录部门信息,department表设计对应如下:

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊对应于MySql数据库的其建表语句为:

CREATE TABLE department(

Dep_ID char(4) NOT NULL,

Dep_Name varchar(10) NOT NULL,

Emp_Num int(4) default value=’0’,

PRIMARY KEY (Dep_ID)

) SET DEFAULT CHARSET=utf8;

7.员工表用来记录员工的具体信息,employee表的设计如下:

该实体对应于MySql数据库的建表语句为:

CREATE TABLE employee (

Emp_ID int(4) NOT NULL auto_increment,

Emp_Name varchar(15) NOT NULL,

Emp_Sex char(2) NOT NULL,

Emp_Age int(3) NOT NULL,

Emp_Date date NOT NULL,

Emp_Address varchar(50) NOT NULL,

Emp_Tel varchar(11) NOT NULL,

Dep_Name char(10) NOT NULL,

PRIMARY KEY (Emp_ID)

) SET DEFAULT CHARSET=utf8;

Emp_ID字段采用顺序自动增加,默认情况下为1。

8.管理员表存储管理的具体信息,manager表的设计如下:

相关主题
文本预览
相关文档 最新文档