1、超市商品管理信息系统数据库设计(优质文档,可直接使用,可编辑,欢迎下载)二、需求分析:(一)主要目标为了大大提高超市的运作效率,降低经营成本,提高效益,以及提升超市的管理水平。根据超市的需要,对其进行规范化管理,因此需要一套合理的管理体系。(二)功能分析1、录入产品信息,并对其进行分类,能够对现有产品的信息进行维护、当产生了新产品后,能够录入新产品的信息;2、能够输入员工、供应商的相关信息并能对其更新;3、在收银处,随时录入商品出货信息(包括产品编号、出货单价、出货数量、员工编号等),及时更新数据库数据;4、 从供应商处进货后,及时录入产品进货信息(包括产品编号、进货单价、进货数量、供应商编号
2、等);5、 录入产品原始库存,并能够根据产品进货、出货信息进行库存管理、更新;6、 可随时查询产品信息、出货信息、进货信息(如月出货报表),并可以打印输出;7、能够根据出货、进货表中的数据自动计算出每种产品的当日库存,并能够实现当前库存查询;8、在需要时生成商品库存情况报告,实时报告商品库存情况:库存量不足(小于某一自定的数量)时,可生成缺货报告,并提供商品种类,来源等信息,方便采购人员进行商品采购;库存量超额(大于某一自定的数量)时,可生成超额库存报告,以便管理人员进行产品组合的协调;9、 商品出货达到一定数量时,可将此类商品信息及出货进货信息打印输出,能够提示畅销产品和滞销产品的种类,并提
3、供商品的库存信息用于市场导购和商品采购指导。(三)数据定义库存n商品编号入库11n商品名称n供应商供应n商品商品类别n供应商编号 厂址名称备注销售nn出库员工 职务部门年龄姓名性别员工编号图1。1 ER图(四)系统设计1、商品管理:录入现有商品的相关信息,如生产日期、保质期、进货价格、出货价格等,并将其进行分类,以便查询、维护、更新;2、进货管理:录入进货相关信息,并进行查询、更新,可打印输出;3、出货管理:记录出货相关信息,并进行查询、更新,可打印输出;4、库存管理:根据进货、出货信息自动计算库存量,并存储商品库存信息,且可以随时打印输出需要的产品库存信息;5、员工信息管理:员工基本信息的创
4、建、更新、查询;6、供应商信息管理:供应商基本信息的创建、更新、查询。超市商品管理子系统商品管理商品流通管理人员管理商品信息录入商品信息更新商品信息查询进货管理出货管理存货管理员工信息管理供应商信息管理图1。2 功能模块树形图三、数据库设计:(一)、表单设计1、超市商品信息表该表主要是显示该超市所卖的商品,及这些商品的基本信息,如:产品标号、产品名称、生产日期、保质期等。图2。1商品分类设计视图图2.2 商品分类数据视图2、超市库存表该表主要的功能是显示已剩下的库存,给下次的进货提供信息。图2.3库存设计视图图2。4 库存数据视图3、进货信息表该表主要是显示进货商品的基本信息,有:产品编号、进
5、货量、进货商、进货日期等。图2。5进货信息设计视图图2。6进货信息数据视图4、出货信息表该表主要是显示已卖出商品的信息,如:该商品的产品编号、出货量、以及出货单价与日期、出售该商品的售货员。图2。7出货信息的设计视图图2.8出货信息数据视图5、供应商表该表主要是显示供应商的基本信息,有:供应商ID、供应商名称、以及地址和联系方式。以便超市对货源进行科学的管理。图2.9供应商设计视图图2。10供应商数据图6、员工信息表该表主要是显示员工的基本信息,包括:员工编号、姓名、性别、年龄、部门、职务、联系方式、工资等信息。方便超市的人力资源管理。图2.11员工信息设计视图图2.12员工信息数据视图(二)
6、、关系视图四、查询、窗体和报表(包括设计视图):图3.1 出货信息查询设计视图图3.2 出货信息查询图3。3 出货总信息查询SQL语句图3.4 出货总信息查询图3。5 商品信息交叉表查询设计视图图3。6 商品信息交叉表查询图3.7 出货信息窗体设计视图图3。8 出货信息窗体图3.9 供应商窗体设计视图图3。10 供应商窗体图3.11 库存窗体设计视图图3.12 库存窗体图3。13 库存窗体设计视图图3。14 库存窗体图3。15 员工信息窗体设计视图图3.16 员工信息窗体图3.17 出货信息报表设计视图图3.18 出货信息报表图3。19 供应商供货信息报表设计视图图3.20 供应商报表图3.2
7、1 进货信息报表设计视图图3.22 进货信息报表图3.23 员工基本信息报表设计视图目录1引言21.1编写目的21。2背景21.3定义21。4参考资料22外部设计32。1标识符和状态32。2使用它的程序32.3约定32.4专门指导32。5支持软件33结构设计43.1概念结构设计43.2逻辑结构设计53.3物理结构设计54运用设计74。1数据字典设计74。2安全保密设计7超市管理系统数据库设计说明书1引言1.1编写目的本数据库设计说明书是为了详细设计的数据结构而进行设计的,为后期工作打下基础。让该系统的需求者对该系统中的数据结构有个大致的了解。1。2背景a、待开发的数据库的名称:超市销售管理系统
8、b、使用此数据库的软件系统的名称:Microsoft SQL Server 2000c、该软件系统开发项目的任务提出者:.。1。3定义SQL语言英文全称是Structure Query Language,意为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通用来执行各种各样的操作,例如更新数据库中的数据、从数据库中提取数据等。SQL已被ANSI(美国国家标准协会)和国际标准化组织(ISO)定为关系型数据库语言的标准语言。目前绝大多数流行的关系型数据库管理系统,如Oracle、Sybase、MicroSoft Sql Server、DB2等都遵循SQL语言标准。SQL语句有很
9、多,功能齐全,大致可以分为四大类:数据定义:用于创建、删除、修改数据中的各类对象,如CREATE、DROP、ALTER。数据查询:对数据库查询检索,命令有SELECT。数据更新:插入、更新、删除数据库,如NSERT、UPDATE、DELETE。数据控制:数据控制管理,如表加锁、授权、回收授权、提交事务、回滚事务,命令有:LOCK、GRANT、REVOKE、COMMIT、ROLLBACK.1.4参考资料1、超市销售管理系统可行性研究说明书2、超市销售管理系统需求说明书3、软件工程导论-张海藩,清华大学出版社。4、数据库系统概论萨师煊高等教育出版社2外部设计2。1标识符和状态数据库标示符:publ
10、ic用户名:programmer密码:security权限:全部有效时间:开发阶段说明:系统正式发布后,可能更改数据库用户/密码,请在统一位置编写数据库连接字符串,在发行前请予以改正。2。2使用它的程序超市销售管理系统客户端.2。3约定用户名 Check约束6位主键约束Primary Key密码Check约束6位到16位员工号Check约束6位主键约束Primary Key主键约束(PK)外键约束(FK)唯一性约束Check约束(用户自定义约束)默认约束(DF)2.4专门指导暂无2。5支持软件管理员工具:SQL Administrator Windows/Linux查询浏览工具:SQL Que
11、ryBrowser Windows/Linux命令行工具:sql开发客户端:SQL connector/NET3结构设计3。1概念结构设计超市销售管理系统数据库E-R模型,如图所示:名称职工/用户职工编号籍贯供货日期进货日期 地址供货商编号供货商进货进货单号商品编号名称价格商品姓名性别条形码mnmn开户行银行帐号工资身份证号客户供货销售单号销售日期数量mn销售3.2逻辑结构设计3。3物理结构设计基本表的设计如下:(1) 职工清单(StaffBill)中文字段名英文字段名字段类型长度主键/外键字段值约束职工编号staffIDchar6PNOT NULL姓名namevarchar8NOT NULL
12、性别sexchar2NOT NULL籍贯homevarchar4NULL学历diplomavarchar4NOT NULL类别kindvarchar10NULL工资salaryint4NULL联系 phonevarchar12NULL addressvarchar50NULL身份证号idCardvarchar18NOT NULL聘用日期beginDatedatetime8NULL编制日期enactTimedatetime8NULL备注otherstext50NULL说明:此表存放员工信息。(2) 用户清单(UserBill)中文字段名英文字段名字段类型长度主键/外键字段值约束帐号userIDc
13、har6P/FNOT NULL密码passwordchar6NOT NULL说明:此表存放系统用户信息.(3) 商品清单(MerchBill)中文字段名英文字段名字段类型长度主键/外键字段值约束商品编号merchIDchar6PNOT NULL供货商号profferIDchar6FNOT NULL名称fullNamevarchar80NOT NULL条形码barCodechar15NOT NULL计量单位metricUnitvarchar4NOT NULL类别kindvarchar8NULL产地birthPlacevarchar50NULL单价unitCostmoney4NOT NULL备注o
14、therstext50NULL说明:此表存放商品信息。(4) 供货商清单(ProfferBill)中文字段名英文字段名字段类型长度主键/外键字段值约束供货商号profferIDchar6PNOT NULL名称fullNamevarchar50NOT NULL联系人contactPersonvarchar8NOT NULL联系 phonevarchar12NOT NULL addressvarchar50NOT NULL开户行openingBankvarchar10NULL银行帐号 accountIDvarchar15NULL备注otherstext50NULL说明:此表存放供货商信息。(5)进
15、货清单(ImportBill)中文字段名英文字段名字段类型长度主键/外键字段值约束进货单号importBillIDchar6PNOT NULL商品编号merchIDchar6P/FNOT NULL供货商号profferIDchar6FNOT NULL进货价importPricemoney4NOT NULL数量quantityint4NOT NULL金额totalMoneymoney4NOT NULL进货日期importDatedatetime8NOT NULL备注otherstext50NULL说明:此表存放进货信息.(6) 销售清单(SaleBill)中文字段名英文字段名字段类型长度主键/外
16、键字段值约束销售单号saleBillIDchar6PNOT NULL商品编号merchIDchar6P/FNOT NULL销售数量saleNumint4NOT NULL销售日期saleDatedatetime8NOT NULL说明:此表存放销售信息。(7) 库存清单(StoreBill)中文字段名英文字段名字段类型长度主键/外键字段值约束商品编号merchIDchar6P/FNOT NULL库存数量storeNumint4NOT NULL4运用设计4。1数据字典设计数据元素:商品信息说明:商品信息的存储并对其进行编码,来区别各类商品数据流来源:人工输入数据流去向:数据库并各种报表打印数据流组成
17、:商品编号+供货商号+名称+条形码+计量单位+类别+产地+单价+备注数据元素:供货商资料组成:供货商号+名称+联系人+联系 + +开户行+银行帐号+备注数据元素:职工信息说明:本公司各个各职工信息数据流来源:人工输入数据流去向:数据库并各种报表打印数据流组成:职工编号+姓名+性别+籍贯+学历+类别+工资+联系 + +身份证号+聘用日期+编制日期+备注数据元素:仓库信息组成:商品编号+库存数量4.2安全保密设计数据只被少数授权用户修改,其他受限用户有权查看,但均必须提供用户名和正确的密码.存储数据库的服务器也只能让系统管理员或少数高级管理人员登录。摘要本文针对超市销售管理信息系统,以超市销售信息
18、系统为背景,通过对超市的日常业务进行详细调研与研究,对其工作流程进行研究,建立销售信息处理模型,并在此基础上设计销售信息管理软件的方案,并加以实施。本文主要对该超市的现状进行了需求分析,达到了相应的用户需求,功能需求以及相应的业务流程,重点阐述了系统的分析、设计的思路和方法,以及系统数据库设计的方法。建立超市销售管理系统使超市销售管理工作规范化,系统化,程序化,避免管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效地进行信息查询和修改。提高了直接或间接的经济效益,提升超市销售管理和行政管理水平,改善顾客和超市成员关系,增强超市服务竞争力,实现优质服务。关键词:超市销售信息管理系统
19、数据库前言随着经济发展人们生活水平的提高,人们消费需求提高物品需求种类多样化,超市销售管理的数据结构及处理也日益复杂.超市服务系统不仅要求准确无误地保留有关经济数据,而且要求迅速可靠地采用各种数据信息进行综合分析和决策。计算机所具有的数字化技术和交互式的处理能力,使其对数据庞大、程序复杂的各类信息进行综合处理,从而为超市经济管理的运行提供决策依据.本文阐述了超市管理系统的设计与实现,以顾客为中心,以时间为轴线,围绕顾客消费过程,详细地、完整地收集所有数据。借助于信息系统的杠杆作用,平衡顾客与超市的需要,将管理信息和顾客信息做集成,使得相关人员在任何时间、任何地点都能得到相关信息。其主要目标是协
20、助完成超市对日常的计算机服务统计和销售管理等业务,减轻超市人员处理业务的劳动强度。 一、系统需求分析1、 系统概述系统分析是系统开发的重要阶段,其目的是要回答系统将要“做什么“,即需求分析。完成需求分析之后,对系统的涉及到的部门进行组织结构分析和业务流程分析。在此基础之上还要做数据流程分析,并利用数据字典对数据流程进行详细的说明。本系统由六个表组成。分别是:供应商表、商品信息表、交易表、会员表、销售表以及入库表。每个表实现不同的功能。主要是为了超市人员的添、删、改、查。提高超市人员的工作效率和工作质量,全面提高了超市的综合管理水平和服务质量,提高顾客满意度,同时为超市带来一定的经济效益产生积极
21、作用.2、 实现功能超市销售管理系统主要实现为了超市人员方便添、删、改、查,提高工作效率,对销售情况一目了然.供应商表主要实现:快速了解供应商的基本信息,比如:编号、姓名、地址、 。通过查询供应商的编号,就可以对他们的信息有所了解。商品信息表主要实现:快速了解商品的基本信息。比如:商品编号、商品名、商品供应商、商品价格、商品销售日期、商品进货日期、商品库存数量.通过查找商品编号,就可以知道此商品的一系列信息。交易表主要实现:交易的记录。比如:交易编号、交易日期、交易价格、会员卡号。通过查找交易编号,可以知道交易的一切信息。会员表主要实现:会员的基本信息。比如:会员编号、会员卡号、会员姓名、会员
22、性别、会员联系方式以及会员地址。通过查找会员编号,可以一目了然的知道此会员的信息.销售表主要实现:销售的记录.比如:交易编号、商品编号、销售数量、销售价格。通过查找交易编号和商品编号可以快速查找到销售的所有记录。入库表主要实现:入库商品的信息.比如:入库编号、入库商品编号、单额、总额、入库日期、入库数量以及入库状态。通过查找入库编号,就可以了解入库商品的所有信息.3、 划分功能模块供应商供应商地址供应商 供应商姓名供应商编号商品信息表商品供应商商品价格商品销售日期商品进货日期商品名商品库存数量商品编号会员编号会员卡号会员性别会员地址会员联系方式会员姓名会员表交易表交易卡号交易日期交易编号交易价
23、格销售表销售数量销售价格商品编号交易编号单额入库状态入库商品编号入库表入库日期入库编号总额入库数量二、数据库的设计1、数据库表的设计数据库共7个表,分别是:商品信息表,会员表,供应商表,交易表,销售表,入库表以及Admin表。以下分别是每个表的内容: 销售表商品信息表入库表会员表交易表Admin表以上为商品信息表,会员表,供应商表,交易表,销售表,入库表以及Admin表的内容。数据流图:2、数据库链接程序package chapter00jdbc。exammanager;import java.awt。;import java。awt.event.;import javax。swing.*;i
24、mport javax。swing.event.*;import chapter00jdbc.exammanager。db。DBAdmin;import chapter00jdbc.exammanager。mygui.*;public class TestFrame extends JFrame private static JDesktopPane theDesktop;JMenuItem loginItem,exitItem,helpItem;/”登录”、退出”和”帮助内容菜单项final String itemString=”管理员”,会员”;final JPanel itemPanel
25、=new PanelAdmin(超市销售信息管理系统,Admin),new PanelhuiyuanBiao(超市销售信息管理系统”,会员表);JMenuItem item=new JMenuItemitemPanel.length;/题库管理”菜单的4个菜单项:3个表和生成试卷”public TestFrame() super(超市销售信息管理系统”);/1。登录菜单:有两个菜单项-”登录和”退出”JMenu loginMenu = new JMenu(登录”);JMenuItem loginItem = new JMenuItem(登录”);loginMenu.add(loginItem)
26、;loginItem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) String name=JOptionPane。showInputDialog(null, ”请输入登陆名字:);String password=JOptionPane。showInputDialog(null, 请输入登陆密码:”);if(DBAdmin.isAdmin(name, password)JOptionPane.showMessageDialog(null, ”登录成功!);for(int i=0;
27、iitem.length;i+) itemi。setEnabled(true);elseJOptionPane.showMessageDialog(null, ”密码不对,登录失败!”););JMenuItem exitItem = new JMenuItem(退出);loginMenu。add(exitItem);exitItem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) System。exit(0););/2。题库管理”菜单:库中的每个表对应一个菜单项,实现添、删、改、查
28、;”导出试卷”菜单项JMenu adminMenu = new JMenu(”超市销售信息管理系统);for(int i=0;iitem。length;i+) itemi=builedAdminMenuItem(adminMenu,itemStringi,itemPaneli);/3.帮助菜单JMenu helpMenu = new JMenu(帮助);JMenuItem helpItem = new JMenuItem(帮助内容”);helpMenu.add(helpItem);helpItem.addActionListener(new ActionListener()public voi
29、d actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(TestFrame。this, 运行程序后,看相应的代码););/4.创建菜单条,添加菜单JMenuBar bar = new JMenuBar();setJMenuBar(bar);bar。add(loginMenu);bar。add(adminMenu);bar。add(helpMenu);/5。窗口中间放置桌面面板,用来显示内部窗口theDesktop = new JDesktopPane();getContentPane().add(theDesktop,Bor
30、derLayout.CENTER);setSize(800, 600);setVisible(true);/创建菜单项的通用方法:参数menu是菜单项所添加在其上的菜单;/参数itemName是菜单项的名字,因其在匿名内部类对象中引用,必须声明为final;/参数panel是点击菜单项后所生成的内部窗口中的面板对象,必须声明为final。private JMenuItem builedAdminMenuItem(JMenu menu,final String itemName,final JPanel panel)final JMenuItem menuItem = new JMenuItem
31、(itemName);menu。add(menuItem);menuItem.setEnabled(false);menuItem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) buildInternalFrame(panel,itemName,menuItem);/生成内部窗口);return menuItem;/生成内部窗口:窗口中间放置面板对象.参数item是与内部窗口相关的菜单项。private void buildInternalFrame(JPanel panel,S
32、tring title,final JMenuItem item) JInternalFrame frame = new JInternalFrame(title,true,true,true,true);/内部窗口frame。addInternalFrameListener(new InternalFrameAdapter()/内部窗口监听:关闭后执行public void internalFrameClosed(InternalFrameEvent e) item.setEnabled(true);/关闭内部窗口时,菜单项item可用。);Container container = fra
33、me。getContentPane();/内部窗口容器面板container.add(panel, BorderLayout。CENTER);/参数面板panel放在容器中间frame。setSize(600,480);theDesktop.add(frame);/内部窗口添加到桌面面板才能显示frame。setVisible(true);item。setEnabled(false);/生成内部窗口后,与之相关的菜单项item不可用./测试TestFrame类public static void main(String args) JFrame frame = new TestFrame();
34、frame.setDefaultCloseOperation(JFrame。EXIT_ON_CLOSE);3、数据库表的添、删、改、查/ 添加记录protected void dealAddbtn() huiyuan a1 = new huiyuan(); / 改成你的beana1.setBianhao(fields0.getText().trim(); / 顺序要对,fields里的序号要和表的字段的顺序一样a1.setKahao(fields1。getText()。trim());a1。setXingming(fields2.getText().trim());a1。setXingbie(
35、fields3.getText().trim());a1.setLianxifangshi(fields4。getText().trim());a1.setDizhi(fields5。getText().trim();DBhuiyuan.addHuiyuan(a1); / 改成你的DBbeanJOptionPane.showMessageDialog(null, ”添加成功);tableModel。setQuery(会员表”);/ 改成你的表名/修改记录protected void dealUpdatebtn() huiyuan a1 = new huiyuan(); / 改成你的beana1
36、.setBianhao(fields0。getText()。trim()); / 顺序要对,fields里的序号要和表的字段的顺序一样a1。setKahao(fields1.getText().trim();a1。setXingming(fields2.getText()。trim();a1。setXingbie(fields3。getText()。trim();a1.setLianxifangshi(fields4.getText()。trim();a1。setDizhi(fields5.getText()。trim());DBhuiyuan.updatehuiyuanbiao(a1); /
37、 改成你的DBbeanJOptionPane.showMessageDialog(null, 修改成功”);tableModel。setQuery(”会员表”);/ 改成你的表名/删除记录protected void dealDelbtn () DBhuiyuan.deletehuiyuanbiao(fields0.getText().trim()); / 改成你的DBbeanJOptionPane.showMessageDialog(null, 删除成功”);tableModel.setQuery(会员表”);/ 改成你的表名/查询记录protected void dealQuerybtn(
38、)huiyuan hy=DBhuiyuan.gethuiyuan(fields0.getText());fields1.setText(hy。getKahao();fields2。setText(hy.getXingming();fields3。setText(hy。getXingbie());fields4.setText(hy。getLianxifangshi());fields5.setText(hy。getDizhi();JOptionPane。showMessageDialog(null, ”查询成功);tableModel。setQuery(会员表”);/ 改成你的表名三、图形界面
39、设计与实现登陆界面登陆成功表的操作界面登陆界面程序:package chapter00jdbc。exammanager;import java.awt。;import java。awt.event.;import javax.swing.*;import javax.swing.event.;import chapter00jdbc.exammanager。db。DBAdmin;import chapter00jdbc。exammanager。mygui.;public class TestFrame extends JFrame private static JDesktopPane the
40、Desktop;JMenuItem loginItem,exitItem,helpItem;/登录”、”退出和”帮助内容”菜单项final String itemString=”管理员,”会员”;final JPanel itemPanel=new PanelAdmin(超市销售信息管理系统”,Admin”),new PanelhuiyuanBiao(”超市销售信息管理系统,”会员表”);JMenuItem item=new JMenuItemitemPanel.length;/题库管理菜单的4个菜单项:3个表和生成试卷”public TestFrame() super(超市销售信息管理系统”
41、);/1。”登录菜单:有两个菜单项-”登录”和退出JMenu loginMenu = new JMenu(”登录);JMenuItem loginItem = new JMenuItem(”登录”);loginMenu.add(loginItem);loginItem。addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) String name=JOptionPane。showInputDialog(null, 请输入登陆名字:”);String password=JOptionPane.showInputDialog(null, ”请输