《数据库原理》课程设计报告数据库课程设计·超市物流管理系统第2页共20页一、系统定义:当今中国零售业发展正盛,大量超市涌现于各个城市,很大程度上改变了人民的消费方式。大量频繁的物资流通,使得传统低效的人工管理已不合时宜。本系统以一个统一的界面,给收银员、采购员和管理人员提供了不同的操作及管理功能。数据库服务器可配置在独立的服务器上,也可配置在一台运行本系统的计算机上。适用于中小型无连锁店,或连锁店间经济独立的超市的物流管理。二、需求分析:(一)系统综合需求作为一个超市物流管理系统,应该给用户提供方便、友好而简洁的界面进行应用,并对超市的运营过程中物资的流动详细记录归档,并将这些数据进行逻辑上的融合,以便于用户查看、分析及管理。针对中小型超市的运营模式,有三类核心员工:收银员、采购员和管理人员,分别有三个核心功能需要实现,销售功能,采购功能,库存管理和员工管理功能。管理人员的功能应该在此基础上进行扩展,实现销售记录查询,采购记录查询,商品信息查询、添加、删除和修改,以及促销活动的设置。很多超市实行了会员制度,会员享受优惠待遇。所以本系统应该引入会员管理的模块,对会员进行注册、删除、查询、消费跟踪。此外,一个成熟的管理系统不仅应该具有基本的处理、查询功能,还应该有一些分析、后台监控的功能。所以可以将基本的供销数据进行融合,以图形化的界面展示给用户进行供销情况的分析。在后台实时监控商品库存量,当低于某一值时,向前台发出预警通知。最后,本系统中对实际中应该机械化处理的过程,如条形码扫描仪,读卡机等,进行手工操作模拟的简化,加入相应功能模块即可在现实中使用。(二)系统逻辑模型数据库课程设计·超市物流管理系统第3页共20页1.数据流图:顾客POS收银系统消费清单收银员销售商品信息,会员卡号应收金额商品信息会员信息优惠规则消费金额库存量减少量采购入库销售记录销售信息采购记录采购员当前打折情况采购信息本次采购信息库存量增加量管理人员优惠规则管理会员管理销售管理商品及库存管理历史采购信息采购记录商品信息列表库存商品信息商品修改信息商品查询条件修改的信息销售记录销售查询条件采购查询条件历史销售记录用户查询条件会员资料,消费清单会员查询条件用户查询条件会员信息优惠规则修改信息当前优惠规则修改的信息打折信息采购管理用户查询条件消费清单图1-1系统数据流图2.数据字典数据库课程设计·超市物流管理系统第4页共20页项目组成类型来源去向存储者使用频度变动频度当前打折情况会员优惠规则,全场优惠规则数据流管理人员收银员-频繁有时(打折信息)管理人员管理人员(当前优惠规则)优惠规则数据存储--管理人员销售商品信息商品编号,售价,销售数量,销售日期,会员编号,收银员工号数据流收银员管理人员-频繁增加频繁,基本无更改(销售信息)(历史销售记录)销售记录数据存储--收银员会员信息会员编号,姓名,住址,电话,身份证号,消费金额数据流管理人员,收银员管理人员-频繁增加不频繁,基本无更改(会员资料)消费清单商品编号,售价,销售数量,销售日期,会员编号,收银员工号收银员管理人员-会员信息会员编号,姓名,住址,电话,身份证号数据存储--管理人员商品信息列表编号,名称,规格,供应商,售价,库存量数据流管理人员,采购员,收银员管理人员-频繁增加不频繁,更改不频繁商品信息数据存储--管理人员本次采购信息采购编号,商品编号,采购价格,采购数量,采购日期,采购员数据流采购员管理人员-有时增加有时,基本无更改历史采购信息采购信息采购记录采购记录数据存储--采购员表1.1系统数据字典数据库课程设计·超市物流管理系统第5页共20页三、系统设计:(一)概念结构设计会员编号姓名住址电话身份证消费金额销售商品编号名称当前售价规格供应商库存量编号售价销售数量销售时间员工工号姓名职位登陆密码在职情况采购mnp编号购价采购数量采购时间(二)逻辑结构设计员工信息表Employee字段名类型NULL其他备注e_idvarchar(10)PK员工号e_namevarchar(10)Index员工姓名e_pwdvarchar(100)Y登陆密码e_positiontinyint(1)职位(0:管理人员1:收银员2:采购人员)e_statebit(1)在职情况数据库课程设计·超市物流管理系统第6页共20页会员信息表Member字段名类型NULL其他备注m_idbigint(8)PK会员编号m_namevarchar(10)Index会员姓名m_addrvarchar(50)会员住址m_telvarchar(15)会员电话m_codevarchar(18)会员身份证号m_consumedecimal会员消费金额商品信息表Product字段名类型NULL其他备注p_idbigint(8)PK商品编号p_namevarchar(30)Index商品名称p_scalevarchar(6)规格p_pricedecimal商品当前单价p_manuvarchar(30)供应商p_qtyint(5)Index库存量采购记录表Buy字段名类型NULL其他备注b_idbigint(8)PK采购编号p_idbigint(8)Index,FK商品编号b_pricedecimal购入价格b_qtyint(5)购入数量b_timevarchar(19)采购时间e_idvarchar(10)FK采购员工号销售记录表Sell字段名类型NULL其他备注s_idbigint(10)PK销售编号p_idbigint(8)Index,FK商品编号s_pricedecimal销售价格s_qtyint(5)销售数量数据库课程设计·超市物流管理系统第7页共20页s_timevarchar(19)销售时间e_idvarchar(10)FK收银员m_idbigint(8)YFK,Index会员编号预警日志表Warning字段名类型NULL其他备注w_idint(4)PK预警编号w_contenttext预警内容优惠规则表Discount字段名类型NULL其他备注m_allfloat所有会员打折数d_allfloat全场打折数部分表关系图:数据库课程设计·超市物流管理系统第8页共20页(三)子模块划分及功能概述采购员管理人员收银员登陆POS收银系统采购入库商品及库存管理会员管理销售管理采购管理供销情况分析优惠规则管理查看预警日志员工管理系统设置三种权限:收银员、采购员和管理人员。登陆后,可以进入不同的功能模块,在登陆界面可以修改登陆密码。子模块划分如下:收银台POS系统(需要权限:收银员)顾客拿商品到收银台时,首先出示会员卡(如果是会员),收银员通过读卡机读取会员卡的会员号,然后通过条形码扫描仪一一扫描商品,获得商品编号,并手动输入购买数量,结算后显示应付金额。在扫描过程中,结算之前,可以取消某项商品的购买信息。收银员还可以在这里看到管理人员发送的通知消息。采购入库(需要权限:采购员)采购员只能采购数据库中已存在的商品。对每种采购的商品输入采购的商品编号,采购数量,和采购价格,这些商品的信息和采购的信息显示在列表中,结算入库后列表清空,并将数据写入数据库。读卡机读取卡号有无会员卡有无扫描商品条形码添加到列表写入数据库数据库课程设计·超市物流管理系统第9页共20页商品及库存管理(需要权限:管理人员)1.引入新商品:填写商品的名称,规格,供应商和售价,将商品引入超市。添加后的商品库存量为0,需要采购。供应商或规格不同的同名商品,应作为不同的商品对待。2.商品查询:可以根据商品的名称,供应商,库存量进行查询,并可以查看所有商品的信息列表。显示的信息包括编号,名称,规格,供应商和库存量。3.删除商品:只能删除库存量为0的商品,表明不再引进此商品。支持批量删除。4.修改商品信息:在商品信息列表中选择一行,对其基本信息进行修改。填写采购信息添加到列表写入数据库填写商品信息写入数据库填写正确?否是填写查询信息搜索数据库显示结果查询全部选择删除对象更新数据库更新显示结果多记录删除是否选择修改对象更新数据库更新显示结果修改信息数据库课程设计·超市物流管理系统第10页共20页会员管理(需要权限:管理人员)1.会员注册:填写顾客姓名,住址,电话及身份证号,即可注册成为会员,享受优惠待遇。2.会员查询:可以按会员的编号和姓名进行查询,并可以查看所有会员的信息列表。显示的信息包括编号,姓名,住址,电话,身份证号和累计消费金额。3.取消会员身份:删除会员资料,使其会员卡失效。支持批量删除。4.查看消费记录:在会员信息列表中选择一行,对其详细的消费记录进行查询。销售管理(需要权限:管理人员)对历史的销售记录进行查看。可以按商品编号,商品名称或日期进行查询,也可以列出所有的销售记录。显示信息包括商品编号,商品名称,商品规格,销售数量,销售价格,收银员和销售时间。填写会员信息写入数据库填写正确?否是填写查询信息搜索数据库显示结果查询全部选择删除对象更新数据库更新显示结果多记录删除是否选择查询对象搜索数据库显示清单数据库课程设计·超市物流管理系统第11页共20页员工管理(需要权限:管理人员)1.增加员工:添加新上岗的员工的信息。需要填写工号,姓名,登陆密码和职位。2.员工信息列表:列出了所有员工的信息列表。显示的信息包括工号,姓名,职位和在职情况。3.员工离职:将离职员工的在职情况置为“离职”。4.修改员工信息:在员工信息列表中选择一行,修改其基本信息(姓名和职位)。5.向收银台发送消息:输入运行本系统的收银台的IP和消息,可以向收银员发送通知消息。采购管理(需要权限:管理人员)对历史的采购记录进行查看。可以按商品编号,商品名称或日期进行查询,也可以填写查询信息搜索数据库显示结果查询全部填写员工信息写入数据库填写正确?否是选择对象更新数据库显示更新结果选择修改对象更新数据库更新显示结果修改信息填写目标IP和消息内容发送消息反馈发送结果搜索数据库显示结果数据库课程设计·超市物流管理系统第12页共20页列出所有的采购记录。显示信息包括商品编号,商品名称,商品规格,供应商,采购数量,采购价格,采购时间,采购员和当前库存量。供销情况分析(需要权限:管理人员)对历史采购及销售数据,用图形的方式显示其供销情况及盈利状况,直观的供管理人员分析。优惠规则管理(需要权限:管理人员)1.会员优惠规则:设置对会员购物实行多少折优惠。2.全场优惠规则:设置促销活动,全场商品打折多少。缺货报告日志(需要权限:管理人员)后台实时监测商品的库存量,当库存量低于某值时,就发出预警,并记入日志。这里可以查看和清空所有的预警日志。管理员可控制预警开关,如果打开,则发出报警,否则,只在后台写入日志。其他附加功能填写查询信息搜索数据库显示结果查询全部搜集数据库数据图表显示结果设置规则写入数据库扫描数据库检查库存量查看缺货日志缺货日志显示写入开启报警?报警是数据库课程设计·超市物流管理系统第13页共20页1.修改密码,重新登陆2.配置数据源连接,将数据源连接信息写入配置文件,避免硬编码数据源名,用户名和密码带来的弊端。3.帮助文档:解释如何配置服务器及一些常见问题。4.备份(增量备份和完全备份),恢复数据库。四、详细设计(一)开发平台及工具开发工具MicrosoftVisualC++6.0DBMS:MicrosoftSQLServer2000建模工具:MicrosoftVisio,SybasePowerDesigner第三方库:Skin++换肤库,MD5加密类说明:为了方便的实现多线程及Socket通信等功能,以及个人熟悉程度的因素,选择了VC6.0的开发平台。而在Windows平台上为数不多的DBMS产品中,Oracle过于庞大,不利于在低配置的机器上运行;Access又过于小型,不能负载大量的数据访问请求,所以选择了适中的MSSQLServer。为了弥补VC做界面困难的缺陷,软件用了一个换肤的共享库Skin++,以dll形式附带在程序包中。另外在登陆密码的加密存储中,用到了流行的MD5加密,