《健康药店管理系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《健康药店管理系统的设计与实现.doc(46页珍藏版)》请在三一办公上搜索。
1、健康药店管理系统的设计与实现毕 业 设 计 中 文 摘 要随着医药行业的发展,广大农村的中小型药店也逐渐兴起,但现代化科学技术使用相对较少的这些农村药店存在诸多经营困难,如药品信息的记录,为了解决这些问题而设计了一个健康药店管理系统。系统实现的功能为药店中不同部门的员工提供相关服务,采购人员能够查询库存人员制定的采购计划并采购药品,以及记录药品、代理商信息;销售人员可以查询药品信息、销售药品并记录顾客的消费信息;库存人员主要是制定采购计划和核实药品的入库情况;财务收支统计和药品的订价是财务人员的主要工作。管理员管理药店的全部人员,并可使用所有员工的工作系统,所有部门的员工相互协作共同完成药店的
2、经营工作。本系统是采用Java编程语言,并结合Microsoft SQL Server 2008数据库开发的一套药店管理系统,该系统基于C/S体系结构开发,它为软件的运行提供稳定的平台。该药店管理系统能为广大农村药店的健康发展和农村人们的方便购买药品提供有效的帮助。关键词 药店管理系统 中小型药店 药品信息 C/S体系结构毕 业 设 计 外 文 摘 要Title Design and Development of the Management System of the Health Drug Shop AbstractWith the development of medicine indu
3、stry, the middle and small drug shop in countryside are being prosperous, but those drug shops, using less modern science and technology, have many problems in running such as the record of drug information. In order to solve those problems, the management system of the health drug shop is designed.
4、 The function finished by the system offer reluctant service to worker in different department. Procurement staff can search the plan made by worker in reservation department, purchase drug and record the information of drug and agency; Salesman can search drug information, sell drugs and store cust
5、omers expenditure information; the main work of worker in inventory department is to make purchasing plan and check if the drug is stored into inventory or not; incoming and expensing statistics and setting the drug sale price is finished by finance departments worker; the administer manage all the
6、worker information and can use the system used by all workers. The workers in all departments coordinate to finish the work of the drug shop in running. Combined the database, Microsoft SQL Server 2008, this system is developed by Java programming language; It is based on C/S architecture which prov
7、ides stable running platform for the software. The management system of drug shop can offer effective help for the health development of drug shop in the countryside and provide convenience for people in village. Key words Management System of the Health Drug Shop Middle and Small Drug Shop Drug Inf
8、ormation C/S Architecture 目 录1引言11.1开发背景11.2农村药店的现状11.3课题研究的目的和意义21.4课题内容和论文章节简介22使用工具及相关知识32.1 Java语言32.2 SQL Server数据库42.3 JDBC数据库链接技术43系统需求分析53.1系统功能分析53.2业务流程分析73.3运行环境要求84系统总体设计94.1系统模块介绍94.2管理员模块104.3库存管理模块114.4采购管理模块124.5财务管理模块124.6销售管理模块135数据库设计145.1需求分析145.2概念结构设计145.3逻辑结构设计166详细设计246.1员工身份
9、验证模块256.2库存功能模块266.3采购功能模块296.4销售功能模块316.5财务功能模块346.6管理员功能模块376.7其它辅助功能模块38结 论39致 谢40参考文献411引言1.1开发背景在农村来说,最基本的医疗保障体系当为农村百姓的日常购买药品,买到放心、有效、便宜的药品对农民来说是最大的实惠。因此,改善、提高、规范农村中小药店是便民利民最实在的事,也是响应国家扶持农村发展的政策。农村大多数药店存在着许多问题,如药店中药品的药品分类不十分明确、销售药品没有记录、销售药品的价格常以店主的记忆为依据,从而常常药品价格偏高。导致上述常见问题的原因多是药店经营中所用到的信息繁琐并且还经
10、常变化,若是对于刚刚开始这样工作的人来说,正确的销售药品就是一件困难的事。为了解决这种实际中的问题,本系统设计了一种健康药店管理系统,从而使药店经营中常用到的信息能方便、快捷的处理。1.2农村药店的现状城镇药店分布不均衡,相对比较繁华地段出现许多药店在一起经营的状况,但在郊区和农村内部经营的药店又相对较少,多数是农村的乡村医生在家经营。广大偏远的贫困农村地区这种情况更为严重。正常营业的药店规模相对较小。目前农村大多数经营的药店营业面积在一百平米以下,对药店经营人员的医药学知识要求不高和其它专技能也没有健全的规范。这就造成一些缺乏药师必要培训的人员也进入到这个行业,再加上店为了节省经费开支,时有
11、药师和其它店员相互代职或脱岗现象发生,经营的药店对顾客的购药服务质量相对较低,多数情况是医生开出药品清单,病人到药店买药。这种现状远不能满足农村百姓的购药咨询服务需要1。经营的药店盈利状况参差不齐,为了获得更多的利润和继续生存下去,药店之间竞争通常十分激烈,在保证药品质量有效的同时,通常药店使用的促销手段是价格战,虽然药品的单位售价降低,但是药店会以多销售为手段以保证总体的盈利情况。随着药品监管部门对药店经营管理力度加大,种种法律法规的日渐完善。这无疑使药店花费更多的人力、物力与财力,在一定程度上其成本又会提高,追求利润永远是企业发展最大的动力。在这种情况下,一些药店会打法律的擦边球,一些违法
12、、违规经营因而出现,严重影响药店的持续发展2。1.3课题研究的目的和意义1.3.1 课题研究的目的近些年来生物科学发展迅速,它直接带动了医药行业的发展,各地的药品制造业和农村的药店如雨后春笋般兴起。但在科学技术和制度管理相对薄弱的农村来说,农村的各种中小型药店也存在诸多问题,如药品的管理、销售信息的统计、财务收支的结算等等。为了使这些药店方便、快捷地解决这些问题,开发一套适合中小型药店使用的管理系统是本体课题的意图所在。1.3.2 课题研究的意义借助计算机技术去完善药店的管理和提高自身的工作效率,以赢得市场竞争的胜利。因而药店管理信息系统对于农村中小型药店适应日益庞大的药店具有重要意义。能够买
13、到放心实惠便宜的药品是百姓生活中现实难题。能够从自己所购药品消费中得到一定的回报也是人之常情。该系统为百姓能买到所需要的药品和依据一直相对稳定的药品价格提供了可靠的保证。总之,该系充为药店企业和顾客双方均提供了实际的利益和效率。1.4课题内容和论文章节简介1.4.1 课题研究内容本系统主要是为了方便中小型药店的经营。它主要是面向五类不同身份的用户,五类用户主要功能分别是:库存部门人员可以依据销售情况制订采购计划和核实药品入库情况;采购部门人员可以查询采购单并采购药品和添加新药品;财务部门人员对药品进行订价和统计收支情况;销售人员销售药品并将消费情况记录到顾客信息中;管理员统领各用户中的重要功能
14、和人员管理。本系统使用的Java语言编写,开发工具是NetBeans,底层数据库是SQL Server 2008来存储数据,使用的数据库链接方式是JDBC方式。1.4.2 论文章节简介论文共分为六个章节,第一章介绍当前药店现状、背景和本系统开发意义;第二章介绍了实现系统的语言和数据库的知识;第三章主要是依据现实需求分析了本系统将要完成的功能;第四章将要完成的功能进行模块划分并说明其主要任务;第五章是数据库的设计与实现过程,同时展示了其相关代码;第六章是整个系统的实现细节说明和部分最终的实现效果。2使用工具及相关知识本系统前台采用的是JAVA语言进行程序代码开发的,后台采用数据库服务器SQL S
15、erver2008完成对系统数据的管理。以下将对系统的开发工具和主要技术作一个简单的介绍。2.1 Java语言Java语言是当今计算机编程语言中十分流行的一种语言,它具有强大的优势。它的面向对像、跨平台、分布应用等给编程人员带来新的理念,它产生的由最初的网页中单纯的静态向动态转变的巨大变化。Java 编写的小应用程序不仅能嵌入网页多媒体也能独立应用于大中型的应用程序中。同时Java语言在全球的云计算机的环境下,它展示出其显著的优势和广阔的前景,Java语言有如下几个重要特点,其独特性为其在诸多计算机语中提供了强大的生命力7。1)面向对象,面向对像解决了很多传统语言所不能解决的问题,包括软件的开
16、发规模扩大、升级加快、维护量增大等。并且这也有助于与人类的思维相符合,现实世界就是各种对像的实体,且各对象之间通过消息相互作用。转化到语言中就是对像的方法用来完成10。2)可移植性,程序在一台计算机系统上经过一次编译后可以移植到其它的Java环境解释执行,只须简单的粘贴和复制就能完成,大大降低了开发、维护和管理的开销,且不会影响程序的最终效果3)有丰富的类库,Java语言包含了基本的字符串 、数学函数、日期处理、输入/输出I/O以及网络包等多种处理包10。第三方还有许多Java的插件工具包,如多媒体框架的JMF和应用于搜索引擎的Lucene开发工具包。4)并发机制,Java支持多线程技术,就是
17、多个线程并发运行,也就是说允许同时做两件或两件以上的事情,这就使程序能充分地应用计算机硬件资源并且提高程序的运行效率,这种语言级别的多线程支持使开发有多线程的程序变得更加简单和容易10。5)支持可视化图形界面,虽然Java语言开发包中提供了图形化开发的界面,但这一部分并不是它的优势之所在,Java以处理速度为优势,而图形化用户界面的加载运行显然耗费更多资源,而影响速度。2.2 SQL Server数据库SQL Server 2008是一款微软出产的面向企业级应用的关系数据库产品,在各种软件开发的数据库使用中占有重要的一席之地。SQL Server 2008在原有的SQL Server 2005
18、架构上做了进一步的更改,它使用了全新的关系引擎和查询引擎设并引入了OLAP和ETL,这标志着它进入了商务智能领域。SQL Server 2008功能模块从多,但大体上可分为两个大模块:数据库模块和商务智能模块。数据库模块有数据库模块以及以其为核心的Service Broker、复制、全文搜索功能组件;商务智能模块由集成服务、分析服务、报表服务三大部分组成11。SQL Server 2008数据库自带了四个系数据库,它们各自起着不同的角色。这个四个数据库分别是Master数据库、Model数据库、Msdb数据库、Tempdb数据库11。Master数据库由系统表组成,这些系统表跟踪用户安装数据库
19、和创建的新的数据库,它记录了其它数据库的基本信息,对整个系统十分重要,如果Master数据库损坏,那么SQL Server将无法启动。Model是一个模板数据库,用户创建的新的数据库全部都以它为基础数据库,如果修改此数据库,那么用户新创建的数据库将会受到影响,所以用户最好不要轻易修改它,同时它还控制用户创建数据库的权限。Msdb是为了提供代理服务的数据库,它提供了队列和可靠信息传递。Tempdb数据库是为了作为一个临时工作区,它的主要特点就是当数据库再次启动时它里面的内容将不再存在,它的大小对数据库的性能优化十分重要。2.3 JDBC数据库链接技术JDBC(Java Data Base Con
20、nectivity)是Sun公司制定的Java数据库连接技术的简称。它为常用的数据库提供完善的联接技术,它对数据库的操作十分详细,编程人员可在容易地通过此种链接来操作数据库。JDBC现在可以连接的数据库除了SQL之外还包括:Oracle、Sybase、Aceess以及Paradox等。JDBC是一个十分独特的动态连接方式,它使得程序变得模块化。使用JDBC来完成对数据库的操作过程主要包括以下四个部分:Java的应用程序、JDBC驱动器管理器、驱动器和数据源。JDBC 是个低级的程序接口,也就是说它可以直接调用 SQL 命令。类似于在数据库管理系统的查询分析器中执行,但它不需要加加载那个界面,因
21、此,在这方面它的执行效率很高,这样就使得系统和整体运行速度得到提升8。3系统需求分析需求分析是对软件可行性分析再一次进行分解与细化,尝试各种可以解决问题的方法。在软件定义中需求分析是它的最后阶段,它要确定整个系统必须实现的功能,换句话说,就是对目标系统做出更加详尽和准确的要求6。依据现实中经营的药店,该系统应该提供常规的进、销、存基本功能,因为经营药店的目的是为了盈利,财务的统计也是不可缺少的一个部分。为此,系统中应该完成:与销售相关的功能、与进药采购相关的功能、与药品库存相关的功能、与财务相关的功能7。销售相关功能中至少应完成对药品销售信息的记录,销售情况的财务统计,以及现实中对于会员或是非
22、会员身份的记录和多次采购药品消费的记录。完成药品的采购是采购功能中必须完成的部分,对于采购中加入新的药品信息也是一个现实中常用到的功能。库存应能完成对于采购的药品进行入库管理以及统计药品的采购支出,依据库存中药品的数量和销售药品的数量制定相应的采购计划也应是库存部门所要完成的功能。统计整个药店的收支情况是财务的基本工作,系统应该能简化实际工作中繁琐的事情,对于销售药品的价格也应该是财务部来确定,从而保证药店的营利。考虑到现实中药店的规模有中、小型大小不一,相对稍大的药店可能还会对员工分属到不同的部门,每个员工相对完成自己部门内的工作,不同部门之间的联系相对较小。所以系统也就满足这一基本的现实需
23、求,应该对不同部门的员工进行管理,记录员工的基本信息,对员工的部门信息的记录,以及不同部门的员工能进入到自己部门的界面。综上所述,系统应该完成财务软件中基本的进、销、存以及财务统计的相关工作,依据部门需求还应该完成员工信息的管理。3.1系统功能分析该健康药店管理系统主要分为五类不同身份的员工和四大藕合性较小的不同功能模块。其中五类不同的员工作身份分别为:采购部门员工、销售部门员工、库存部门员工、财务部门员工和系统的管理员,也就是药店的拥有者。前四种员工可以进入到彼此操作不相同的界面,进行药店运营的不同工作,管理员可以管理员工的基本信息,包括员工进入系统的用户名和密码,从面他可以进入到不同员工的
24、界面中去。四个不同的模块为销售模块、采购模块、库存模块、财务模块,还有一个相对比较集成的是管理员模块,它集成了管理员所关心的各部门最重要的工作和信息查询。各个模块人功能介绍如下。a) 销售模块1)顾客信息管理:来药店来买药的顾客如若愿意加入为药店的会员3则可记录顾客的基本信息,从而可以记录每次购买药品的消费金额,并折算成相应的积分,以便宜对药店的促销、招揽顾客提供一定的依据。2)药品销售:该部分应该完成对销售药品时对药品销售价格的查询,并且能记录销售药品的信息,从而使对收入的统计更加方便,将购药的金额记录到会员顾客的名下,并打印相关的发票信息也是此部分要完成的功能。3)销售统计:完成当天销售信
25、息的收入的统计,以及当前月收入信息的统计,4)销售汇账:把当天或月销售信息统计的收入情况形成相关的纸质文档,以便对店长的汇报和方便查阅。b) 采购模块1)药品记录:记录采购过程中所遇到的新的药品,将其记录到系统中,以便在库存部门制定采购计划中可以参考,查阅当前系统中的药品信息、修改、删除某个药品的信息也是它的基本操作。2)代理商管理:记录所采购的药品是在哪位代理商手里购买的,从而可以采购时方便快捷的采购到需要的药品,查阅、修改、删除其信息也是其基本功能。3)采购查询:查看库存部门制定的采购计划,依据此需求来采购药品,它也应完成采购过程中采购药品价格变动的修改,和采购数量的更改。4)采购单汇总:
26、完成对所采购的药品支出情况进行统计。c) 库存模块1)药品信息查询:制定采购计划时查看可能会用到的药品的基本信息。从而做出正确的决策。2) 销售信息查询:参考药品的月销售量从而更合理的决定某种药品所要采购的数量,月销售信息的查询为采购数量的确定提供一定的参考数量。3)采购计划制定:根据已经销售过的药品记录和对销售信息不确的信息制定相应的采购计划,并完成采购单的统计打印功能。对采购单的修改、查看、删除也是这一部分的基本功能。4)入库核实:对已经采购来的药品进行入库登记,并统计采购药品的支出费用。d) 财务模块1)收支查询:这一部分完成系统的全部收入和支出情况的统计,包括完成销售药品的收入统计,采
27、购支出的统计,员工薪资的支出统计,最终还有一个对所有收支的总全统计,并计算出药店的纯收入。并且应可以打印出来相应的文档,以便可以方便向店长汇账。2) 销售药品价格确定:对于采购来的药品,销售、库存都没有对其销售价格进行确定的权限,财务部门的员工参考药品的采购价格来确定药品的销售价格,从而保证药店的盈利。3)参数确定:根据药店的收支情况,财务部门可以对药品销售时对顾客的打折情况进行更改,以及消费金额到积分数量的转换,从为了促销而降低其转换比率或是将其提高。对于销售信息不明确的信息药品的采购量也可以依据一定的收入信息和销售情况修改采购量。e) 管理员模块1)员工管理:对各个部门的员工进行管理,对于
28、新员工信息的加入,以及辞职员工信息的删除。2) 各模块集成:对上述四个模块的部分数据显示集成显示到管理员界面中,当然,只加入管理员最关心的数据信息,对于不重要的操作管理员可以查询员身份信息进入不同部门的界面进行了解。3.2业务流程分析业务流程分析的主要目的在于分析各个模块之间数据处理的过程,但其中略去系统开发过程中不太重要的细枝末节,从而将数据处理的逻辑过程形成清晰的脉络。同时从现有的业务处理过程中找到现有的不足,并且加以改正以使系统更加稳定强壮6。本系统的业务流程就是四个主体模块中完成整个药店经营的全部过程,这四个主模块也是四个小系统,主体处理过程为:在库存系统中依据销售量和药品信息制定合理
29、的药品采购计划,采购系统中可以查询这个制定的计划,并且依此而采购,之后库存部门对采购的药品进行入库登记,财务系统对采购过的药品依据采购价格进行药品订价,销售系统最后向顾客销售药品。财务系统还有一个与各模块有都有藕和关系的功能,它可以统计各部门的收支情况整个系统所完成业务先后的时序图如图3.1所示。图3.1 药店管理系统整体业务时序图3.3运行环境要求此系统是基于客户端/服务器(C/S模式)的系统,后台数据库采用SQL Server,前台使用Java语言开发。a)软件环境操作系统必须是Windows 2000 Professional/Server,Windows XP Professional
30、、Windows.NET Server或以上版本;数据库应使用SQL Server 2008。b)硬件环境内存至少为128MHZ;CPU要求为Intel Pentium 800MHZ或以上更高频率的CPU;硬盘容量要求为40G以上。4系统总体设计4.1系统模块介绍本系统是使用Java语言开发的稳定完善的药店管理系统。系统中主要设置了四个相对独立但又彼此相互关联的模块,这四个模块就是典型的进、销、存和财务统计模块,还有一个更加独立的系统管理员模块,它处理整个系统中户的信息,具有授予和剥夺用户进入系统的权限,并且可以进入到不同的模块和查阅任意模块中的功能。各个模块之间在界面里的操作相互独立,彼此之
31、间的主体功能不同,但是各个模块的操作共同完成整个药店的经营过程,共同操作底层的数据库中的数据信息,本系统的模块设置如图4.1所示。健康药店管理系统系统管理员库存管理采购管理财务管理销售管理图4.1 健康药店管理系统功能模块图从实现的主体功能模块上分为分上面几个部分,各个模块间又使用了相似的操作界面来实现各模块的具体效果,但各模块界面内部加入的数据显示和操作功能各自有所不同。在底层数据库和最上层显示界面之间还有两层数据处理的类文件,这些文件可分为三部分,一部分是调用、操作数据库数据的Java类文件,它们在系统项目中共同存入在同一个数据库操作包中,在界面中调用这个包中的类文件,使代码的层次更加分明
32、;再一部分是处理、加工在已经在数据库中调用出来的数据的类文件,这些文件控制在界面上显示的数据,并把用户处理过的数据再次存放到数据库中。第三部分是为各个模块方便处理而设置实体Bean文件和其它都会用到的辅助类,实体Bean加大了数据处理的粒度,实体对象的信息传递更加容易,辅助类是各个模块中使用到了相关类,这些类不分属于哪个模块,它们的层次关系如图4.2所示。数据流逻辑处理数据库数据库存储文件链接、释放查询添加数据查询修改查询删除销售逻辑采购逻辑库存逻辑财务逻辑数据库数据操作辅助实体类文件、公共类文件各模块具体应用销售模块库存模块采购模块财务模块管理员模块图4.2 药店管理业务逻辑层次图4.2管理
33、员模块系统管理员模块中涉及了其它四个模块中的数据显示和部分操作功能,但是这些功能和查询显示的数据仅是管理员所最关心的内容,并非其它各模块所有功能的合成,管理员可以通过系统获得所有部门员工进入系统的口令,从而以不同的身份进入到不同的模块界面中以了解各部门中的全部信息,各模块中相互重复数据显示和操作则在管理员界面中只出现一次。管理员模块中还有一个十分主要的功能,就是对新员工的信息加入和一系列的修改删除,这些都是对员工能否进入系统做出的相关权限设置,这一部分是其它模块中所没有的,其它模块只有进入系统的员工只有显示和修改自己的各个信息,但不能查看其它员工的信息。从系统的使用权限层次上来说,管理员在顶层
34、,它统领其它部门的全部人员,有分配员工部门和使用该系统的权力,也是取消员工使用系统的权限,这是为了应对实际中,招聘新员工和员工辞职而设置的实际需求。该模块功能如图4.3所示。系统管理员模块财务部员工管理销售部采购部信息查询信息添加总体查询月销售信息月销售报账供应商查询采购计划采购单库存部入库核实销售收入采购支出薪资支出财务汇总添加采购药品 图4.3 系统管理员模块图4.3库存管理模块库存模块主体功能是为了管理库存中药品的存放并且依据所缺少的药品和某种药品的销售量来制定采购计划。它的辅助还涉及了药品基本信息和销售信息的查询,以辅助制定采购计划。这个模块的重点功能和逻辑相对较复杂的是采购计划的制定
35、和采购部门采购药品后进行入库核实的两个主体功能的实现,这也是这个模块存在的主要意义之所在,该模块功能模块图如图4.4所示。库存模块药品信息销售信息采购计划入库核对查询日信息查询月信息查询计划修改制定计划取消计划核对查询入库登记计划查询清空采购表图4.4 库存管理模块图4.4采购管理模块采购模块大体上分为三个主体功能,它包括记录采购过程中所遇到的新的药品和记录某个药品代理商信息,以及对它们各自信息的修改和删除,这两部分可以说是对整个系统添加必要的处理信息;别一个功能是查询采购计划,并依据现实情况对采购计划做出实际的修改,这种允许采购人员对采购单进行修改的设置为了应对实际的需要,因为在现实中的药品
36、价格可能有涨落,但这种信息只有采购人员才能最先知道,在这部分做出修改采购计划中的采购量和药品采购价格比较合理;最后一个小功能就是对采购药品支出的汇总,它主要是完成采购药品的统计。该模块的功能模块图如图4.5所示。采购模块采购查询采购单汇总供应商信息药品信息查询具体查询修改汇总打印添加修改删除查询查询添加修改删除图4.5 采购模块图4.5财务管理模块财务管理模块主要分为三个大的功能部分,一个功能是对财务收支的统计,包括销售收入的查询,采购支出的查询,员工薪次的修改与查询,和最终的整体汇总出药店的盈利情况;别一个功能就是对所采购药品进行销售价格的确定,以及对目前正在销售的药品价格进行修改,从而确保
37、每种药品的盈利;另一功能就是系统中一些参数的设定功能,如会员打折比率设定,消费金额的积分转换比率,这一些参数是其它模块中所使用到的信息,这些信息影响到药店的整体收益情况,财务人员根据药店的财务统计和实际要求有对其进行修改的权根。该模块的功能模块图如图4.6所示。价格调整价格查询采购量积分比打折率财务模块收支查询销售定价总收支查询薪资调整薪资查询采购支出销售收入参数设定图4.6 财务管理模块图4.6销售管理模块 销售模块主要分为四小的功能部分,一部分是对顾客信息的添加与修改,从而可以在将药品销售给会员顾客的同时记录顾客的消费积分和消费金额;另一部分是药品的销售功能,这是销售模块中的主体功能,它能
38、将药品信息买给指定顾客和记录销售的药品信息,为统计销售的收入情况提供统计数据,剩下的两部分功能是对销售收入的统计和对财务汇账,这两部分是销售人员对当前日和月销售的药品和每种药品的盈利情况的统计,使对店长的财务汇报更加方便。该模块的功能模块图如图4.7所示。销售模块销售统计销售汇账药品销售顾客信息日销售统计月销售统计月汇账查询添加总体查询销售查询日汇账图4.7 销售模块功能图5数据库设计5.1需求分析需求分析就是确定开发的应用系统所使用的数据库结构,收集和分析用户对数据库的要求,了解用户要什么样的数据库,对用户需求分析的描述是数据库概念设计的基础,数据库设计的起始就是需求分析,用户的真实需求能否
39、得到满足,将直接关系到数据库的后续开发,进而影响整个系统的再一次扩展和升级12。从用户需求方面来说。系统数据库应该能够为存储不同员工实体的信息,且应该能够对其信息进行处理操作;常规财务软件进、销、存和财务统计也所用到的信息也应该由精通数据库的开发人员来进行合理的设计,并在前台界面中显示出来,这一部是该系统中核心的数据;由于实际经营中还有对顾客信息的记录,以区分会员和非会员,以进行促销和招揽顾客,顾客的信息也应该能加入到数据库中,并可以将顾客每次消费的金额记录到数据库中,以便在实惠顾客时做出相应的依据。采购部门使要联系的代理商信息也该加入到数据库中,这样可以方便采购人员方便的找到所需要品是哪位代
40、理商所代理的,从而提高工作效率。从系统功能方面来说。系统要能区分不同部门的员工信息,所以员工应该作为一个实体在数据库中存在一张表,以满足对员工信息的处理;该系统是药店管理系统,系统中最重要的实体类型数据就是药品实体的数据,因此,药品实体应该作为一个单独的一个表来存储药店中的药品信息;从财务软件的进、销、存和财务统计来说,数据库中还应该有与采购与销售相对应的数据库表,以存储相应的数据。所要存储的主体数据应该由前面所提到的表来存储,而其它功能模块所需要显示的数据可以由表格形成相应的视图来整合完成,既可以满足相应的功能需求,也俱有一定的安全性。从上述两方面来来说,数据库应该在能存储用户所要存储数据的
41、基础上依据具体的系统设计做出相应的数据库表或者是视图。5.2概念结构设计概念结构设计的目的是获取数据库的概念模型,将现实世界中的人或个体信息转化到信息世界中,这种转化只关心与系统相关的数据信息,从而形成一组描述现实世界中的实体及实体间联系的概念。概念模型独立于机器,比数据模型更抽象、更稳定。此模型是现实世界到信息世界的第一层抽象,是数据库设计的工具,也是数据库设计人员和用户进行交流的语言。它常使用的模型是E-R14模型来表现数据信息与实体对象之间的关系13。在本系统的数据库中涉及到许多的表和视图,但相对独立的实体有四个,它们是药品实体对象、顾客实体对像、代理商实体对像、员工实体对像。这四个实体
42、彼此之间有一定的操作关系并且系到实体信息在数据库中的存储,它们各自形成一个自己独立的表来存储其数据。它们的整体E-R模型如图5.1所示。mmnnmn药品类型名称编号库存量售价采购价生产厂家代理商编号代理商编号名称地址电话邮件代理姓名购买类型顾客编号电话消费金额积分员工姓名性别年龄地址工资用户名编号部门密码电话整理、销售图5.1 实体对像E-R图药品实体就是记录每种药品中与药店经营最相关的信息,这些信息是采购、库存、销售中都会用到信息,而与系统关系较小数据则不进行存储,如药品的功能、服用量、配方等。与药品相关的是经营此药品的代理商,而代理商又是一个相对独立的实体,但代理商与包含的信息只是为了与采
43、购人员进行与代理商联系的方便,代理实体记录的信息是为了采购人员能够方便的联系代理商来采购所需要的药品,而不关心代理商自身的其它信息。顾客实体在系统中只是为了记录会员顾客多次在药店消费的金额和对应的积分数量,存储蓄这些信息的目的一方面是作为回馈顾客的依据,另一面也是为了药品的促销,赢得更多的回头客,提高药店的盈利。至于顾客的地址、年龄等与药店和整个系统的关系很小,不是系统关心的内容,所系统中所用到的顾客的信息较少。 员工实体是系统的操作人员,此实体记录药店中所有部门的员工信息,在详细信息叫记录其与药店工作相关的信息和其薪资水平,在员工记录中还加入了员工进入该系统的用户名和密码,虽然这项与其它信息
44、不相关,但它不足以构成一个新表,且十分独立,所以将其归类到员工实体中比较合理, 5.3逻辑结构设计逻辑结构设计的任务就是把概念结构阶段设计好的基本E-R图转换为与SQL 2008数据库管理系统DBMS所支持的数据模型相符的逻辑结构。除了将E-R图转换为相应的关系型数据库所对应的表,此阶段也应设计出所要使用到的所的有存储数的表和所使用到的视图,这些表格可能不是实体类型,但确是存储数据所不可缺少的一部分13。a)由上节概念结构设计得出的药品与代理商E-R图可以转换成相应的关系模式药品表所对应的字段信息如表5.1所示。表5.1 药品信息表字段名称字段类型字段大小说明允许空IdInt4字节系统自动编号
45、falsednumvarchar10字节药品编码falsednameVarchar50字节药品名称falsedtypeVarchar50字节药品类别falseamountint4字节库存量truesalePriceint4字节销售价格truepurchasePriceint4字节进货价格falseManufactoryVarchar50字节生产厂家falseanumVarchar10字节代理商编号false虽然此药品信息表只是记录药品的信息,但它与代理商有着药品被代理的隐含信息,此表中无法显视出来,它需要与代理商形成视图来显示此信息,若要能正确的形成此视图的信息,就要对此表进行参照完整性约束,
46、在数据库中使用的是触发器来触发在向表中加入数据时也向两表的关系表中加入与之相应的字段数据,以及删除某种药品时也同时删除关系表中所对应的数据项。该表所使用的两个触发器13的代码如下:create trigger Insert_SynWithDrugWithAgency on drug for insertasinsert into drugWithagency select dnum,anum from inserted create trigger Delete_SynWithDrugWithAgency on drug after deleteasdelete from drugWithagency where dnum =(select dnum from deleted) and anum=(select anum from deleted )通过上述两个触发器的完整性约束可以保证视图显示正确的信息。代理商实体在数据库表中的字段设计如