-
2021-04-22 19:36:15
一、实践目标
训练目的:帮助读者感性地认识数据库系统的各组成部分,掌握数据库设计的基本方法,巩固对数据库基本解释和基本理论的理解。
功能目标:学校后勤公司希望通过计算机对后勤物资进行管理。
系统主要功能如下:
(1)购货管理:包括采购合同管理和进货统计报表,采购合同管理又分为采购合同维护、采购执行情况跟踪、采购信息统计。
(2)销售管理:分为销售合同管理和销售情况统计。销售合同管理包括销售合同的维护和管理,销售情况统计用于统计用与确定销售的数量和价格(可以按照类别、时间段等条件统计),统计所得的数据可以为今后指定后勤公司计划提供参考信息。
(3)库存情况管理:用于管理库存情况,包括库存查询、库存盘点、库存上下限警报等,并生成库存统计图。
(4)系统数据维护:分为物资供应商信息(编号、名称、主管、简介等)管理和产品信息管理。
(5)账务管理:管理后勤公司的结账业务,每个月都要进行一次结账操作,确定该财务月份所有物资的进、销、结存情况,为财务管理提供数据。
(6)系统管理:包括参数设置、权限设置、更改密码等。二、基本实现思路
1、首先前期准备进行需求分析,规划好每一个主体所含的属性以及每个主体之间的关系,建立E-R图,设置主外键。
2、利用数据库设计工具PowerDesigner设计概念模型,设计完后转化为物理模型,管理好主外键的关系,进而转化为数据库建表的代码。
3、利用数据库设计工具SQLServer 2012 Management Studio进行一些基本的操作,例如对表的测试,建立相关触发器、存储过程以及视图等等。
4、利用Python实现前端,完成相关功能的界面及主界面,为用户提供友好界面等。
5、将数据库与前端连接,实现数据库和前端的交互,完成学校后勤物资管理系统。
6、最后对系统进行测试与优化,找出相应的解决方案。三、关键技术与难点讨论
前端的设计难点:
1、数据的展现方式需要对用户友好。
2、难点在于对界面的转换和界面间数据的通信。
3、与数据库间的交互,需要考虑对数据的保护,防止前端对数据的操作造成前后端数据不同步读脏数据。
4、与数据库的连接。(进行验证登录账户是否是有效账户)
关键技术的实现:主要通过python的tkinter库完成,利用其进行前端的布局和设计,为用户提供友好界面,实现相关功能的界面;通过使用pymssql和pyodbc库对数据库进行连接通信。前后端数据的通信时,在前端对数据进行操作时不允许其他操作对其作用;对有的子功能需要使用到触发器,用以方便同步更新其他相关数据,简化步骤;另有其他界面有需要对不同的表间属性的展示,故需要建立视图,用以达到向用户展示友好界面的目的。数据库设计:
GUI:
五、附录软件使用手册:
- 购买货物需要提供:购货单号、产品单号、供应商单号、进价、数量、进货时间。
- 销售管理有两个子系统管理:1、查询销售情况(可按产品名称和月份查询) 2、销售需要提供: 销售单号、产品单号、客户单号、售价、数量、销售时间。
- 库存管理:可查询库存货物的存量等(提供按编号和货物名两种方式进行查询)。
- 数据管理:给用户提供多种方式查询供应商和产品的详细信息。
- 财务管理:给用户提供月报表,每月的结余盈利和进货销售情况,为用户下一月的进货提供参考。
数据库核心代码:
购货入库触发器: ALTER trigger TR_Buy_Store on Buy after insert as Declare @pnumber char(5),@gnumber numeric(2),@pprice int,@pquan int,@mnumber int,@snumber char(1) select @pnumber=pNumber,@gnumber=gNumber,@pprice=pPrice,@pquan=pQuan,@mnumber=mNumber,@snumber=sNumber from inserted begin update Store set Store.gNumber=@gNumber,Store.wTotal=Store.wTotal+@pquan where (Store.gNumber=@gnumber) End 购货月销售额触发器: ALTER trigger TR_Buy_Total on Buy for insert as declare @gnumber numeric(2),@pprice int,@pquan int,@mnumber int select @gnumber=gNumber,@pprice=pPrice,@pquan=pQuan,@mnumber=inserted.mNumber from inserted begin update Total set Total.pTotalMoney+=@pprice*@pquan where Total.mNumber=@mnumber update Total set Total.TotalMoney=Total.SellTotalMoney-Total.pTotalMoney where Total.mNumber=@mnumber end 售货出库触发器: ALTER trigger TR_Sell_Store on Sell after insert as Declare @sellnumber char(5),@gnumber char(1),@cnumber char(2),@mnumber int,@sellprice int,@sellquan int select @sellnumber=SellNumber,@gnumber=inserted.gNumber,@cnumber=cNumber,@mnumber=mNumber,@sellprice=SellPrice,@sellquan=SellQuan from inserted begin update Store set Store.wTotal=Store.wTotal-@sellquan where (Store.gNumber=@gnumber) and @sellprice<Store.wTotal end 售货月销售额触发器: ALTER trigger TR_Buy_Total on Buy for insert as declare @gnumber numeric(2),@pprice int,@pquan int,@mnumber int select @gnumber=gNumber,@pprice=pPrice,@pquan=pQuan,@mnumber=inserted.mNumber from inserted begin update Total set Total.pTotalMoney+=@pprice*@pquan where Total.mNumber=@mnumber update Total set Total.TotalMoney=Total.SellTotalMoney-Total.pTotalMoney where Total.mNumber=@mnumber end
前端与数据库后台交互代码:
数据库连接 # -*- coding=utf-8 -*- import pymssql import pyodbc import datetime class DataBase(): def __init__(self,server = "127.0.0.1", DataBase = "SQL2012", port = 22265): self.DataBase = pyodbc.connect('DRIVER={SQL Server Native Client 11.0};SERVER=127.0.0.1,22265;DATABASE=SQL2012;UID=sa;PWD=123456') #self.DataBase = pymssql.connect(server = server, database = DataBase, port = port, charset="GBK") def SQL(self, sql): ''' 执行SQL语句,返回结果 ''' cur = self.DataBase.cursor() cur.execute(sql) try: result = cur.fetchall() except(pyodbc.ProgrammingError): print("改语句没有返回值") result = None cur.close() return result def Search(self,col_name = ["*"], Tables = [], condition = None, order = None): ''' 查找表 args{ col_name:列名默认全选 Tables: 表名 condition:WHERE 条件 } ''' if len(Tables) <= 0: print("查询失败,无表") return False if len(col_name) <= 0: col_name = ["*"] SQL = "" SELECT = "SELECT " for i in range(len(col_name)): SELECT += col_name[i] if i + 1 < len(col_name): SELECT += "," SQL += SELECT FROM = " FROM " for i in range(len(Tables)): FROM += Tables[i] if i + 1 < len(Tables): FROM += "," SQL += FROM WHERE = " WHERE " if condition: WHERE += condition SQL += WHERE ORDERBY = " ORDER BY " if order: ORDERBY += order SQL += ORDERBY return self.SQL(SQL) def Update(self, Table, col_name, value, condition = None): ''' 修改表数据 args{ col_name:列名 Tables: 表名 condition:WHERE 条件 } ''' UPDATE = "UPDATE " UPDATE += Table SET = " SET " SET += col_name + "=" + value WHERE = " WHERE " if condition: WHERE += condition SQL = UPDATE + SET + WHERE print(SQL) result = self.SQL(SQL) self.DataBase.commit() return result def Insert(self, Table, cols, values,commit = True): INSERT = "INSERT INTO " INSERT += Table + cols VALUES = " VALUES " VALUES += values SQL = INSERT + VALUES print(SQL) result = self.SQL(SQL) if commit: self.DataBase.commit() return result
最后:完整代码
更多相关内容 -
库存管理数据库课程设计库存物资管理系统后台数据库.pdf
2020-08-21 06:31:33(库存管理)数据库课程设 计库存物资管理系统后台 数据库 目录 库存物资管理系统后台数据库 1 第 1 章进行需求分析编写数据字典 1 1.1 系统功能要求设计1 1.2 模块设计 1 1.3 数据字典 2 第 2 章面向对象分析和设计 4... -
数据库课程设计-仓库管理系统.doc
2021-08-20 18:47:57数据库课程设计-仓库管理系统.doc -
数据库课程设计:建材物资管理系统数据库课程设计
2021-01-15 00:37:20数据库课程设计:建材物资管理系统数据库课程设计 ** 一.课设简述 ** 本次设计基于大二学习的数据库原理这门课程,选择了建材物资管理系统这个课设题目,在查阅了相关资料后,设计了集进货商家信息,进货报表到物资...数据库课程设计:建材物资管理系统数据库课程设计
**
一.课设简述
**
本次设计基于大二学习的数据库原理这门课程,选择了建材物资管理系统这个课设题目,在查阅了相关资料后,设计了集进货商家信息,进货报表到物资在仓库中的各属性具体说明,销售时的销售信息表和员工信息于一体的数据库系统,设置外键使各个表相连,更直观的展现之间的关系。同时,进行了查询,增加数据,建立视图等功能的实现。二.需求分析:
建材物资管理系统主要用于建材仓库对施工材料信息的管理,将计算机引入到物资仓库管理系统当中,利用计算机支持仓库高效完成劳动人事管理的日常事务,是适应现代企业制度的要求,推动企业管理走向科学化,规范化的必要条件。物资管理是一项琐碎,复杂而又十分细致的工作,核算工作量很大,不允许出错,实行电子化管理模式,可以减轻比较繁琐的手工仓库管理,更加针对性,便捷性,可视化管理货物。三.数据流图:
在数据库系统中,可以清晰地了解到任何一件物资从哪位进货商进货,储存在哪个仓库,以及对应的商品信息,到通过哪位员工销售的整个商业流程。
四.ER图
在数据库中建立5张表,对应整个系统的五个环节,每张表中的具体名称如下:
五.数据库设计与实现:
1.基本表的定义与实现:
采用采用management studio进行建表,把相应的数据信息录入到表中。
①供应商家信息表的建立与实现,数据名称与类型配置截图如下:
②物资进货表的建立与实现:
③物资仓库表的建立与实现:
④员工信息表的建立与实现:
⑤销售信息表的建立与实现:
2.在建表结束后,我们进行部分简单功能的实现(详细功能请私信)
①视图:
建立1仓库所存放物资的库存数量不少于20的视图s2:
代码如下:create view s2 as select * from 物资仓库表 where 库存数量>=20;
运行结果见如下:
②查询:
查询库存量超过该仓库物资平均库存量的物资编号、名称、规格及数量:
代码如下:select 物资编号,物资名称,规格,库存数量 from 物资仓库表 s1 where 库存数量 > (select avg(库存数量) from 物资仓库表 s2 where s1.仓库名称 = s2.仓库名称 );
运行结果如下:
③存储过程:
存储过程的定义与实现:
创建一个带默认输入参数的存储过程exp2(物资编号默认值为’%002%’),通过传递的参数查询对应的物资编号的规格及进货单号:代码如下:
create procedure exp2 @物资编号 char(8) = '%002%' as select 物资仓库表.物资编号,规格,进货单号 from 物资仓库表,物资进货表 where 物资仓库表.物资编号 = 物资进货表.物资编号 and 物资仓库表.物资编号 like @物资编号 go
运行结果如下:
④ 触发器:
触发器的定义与实现:
创建一个INSERT触发器tr1,在对物资进货表插入一条记录后,更改对应物资在物资仓库表中的库存数量,完成级联更改操作:
代码如下:create trigger tr1 on 物资进货表 after insert as declare @物资编号 char(8),@进货数量 int select @物资编号 = 物资编号,@进货数量 = 进货数量 from inserted update 物资仓库表 set 库存数量 = 库存数量 + @进货数量 where 物资编号 = @物资编号 go
运行结果如下:
⑤数据更新(插入):
将新的仓库物资(物资编号:005;物资名称:五金器件;规格:F-100;仓库名称:2仓;库存数量:50;单价:16;供应商家编号:111)插入物资仓库表中:
代码如下:insert into 物资仓库表(物资编号,物资名称,规格,仓库名称,库存数量,单价,供应商编号) values('005','五金器件','F-100','2仓','50','16','111');
运行结果如下:
⑥索引与用户定义及权限设置---------------------------分割线---------------------------
本次课程设计部分重点设计就是这样啦~
如果对你有帮助的话请点一赞!嘿嘿~
欢迎大家评论交流!
如若需要完整的数据库文件欢迎大家私信或者加q:280542622,创作不易,需要一点赏钱(嘻嘻),另赠送详细报告一份(个人觉得我这报告写得相当好)!
祝大家学业有成! -
数据库课程设计 仓库物资管理系统(JAVAweb源码+mysql+设计报告)
2018-05-29 10:26:182.2.2库存管理..……………………………………………………..7 2.2.3商品销售………………………………………………………8 2.2.4查询统计………………………………………………………8 2.2.5往来管理………………... -
【数据库课程设计】企业库存管理系统
2022-01-22 22:27:34 -
数据库课程设计---库存物资管理系统后台数据库.doc
2021-10-20 21:40:36数据库课程设计---库存物资管理系统后台数据库.doc -
学校后勤物资管理系统(数据库课程设计).zip
2021-05-24 13:39:53(3)库存情况管理:用于管理库存情况,包括库存查询、库存盘点、库存上下限警报等,并生成库存统计图。 (4)系统数据维护:分为物资供应商信息(编号、名称、主管、简介等)管理和产品信息管理。 (5)账务... -
《数据库课程设计》_大作业_某物资供应公司的物资库存管理系统设计与开发.zip
2021-11-06 16:51:07适合学习数据库的人群,报告可以通过查重 -
《数据库课程设计》_大作业_公司的物资库存管理系统设计与开发.docx
2021-03-26 10:37:20本次课程设计的题目是某物资供应公司的物资库存管理系统,系统内容要求是:一个采购员可以从多个供应商处采购多个货物,,一件货物只能报损一件报损单,一个销售员可以向多个客户销售多个货物,一个供应商可以入库多个... -
《数据库课程设计》_大作业_某物资供应公司的物资库存管理系统设计与开发.docx
2021-03-26 10:41:14本次课程设计的题目是物资库存管理系统,系统内容要求是:某物资供应公司有多个仓位,每一仓位有多个货物,一个货物仅隶属于一个仓位,一个货物仅有一个报损单,一个货物也仅有一个订单,一个采购单;但一次采购中有... -
数据库原理课程设计——物资发放管理系统
2021-07-11 00:58:39设计一个物资发放管理系统,要求实现以人员、物资类别、物资的信息管理;实现物资发放任务发起管理;实现人员物资签领管理;实现物资统计管理。 2.功能模块 3.详细设计 (1)申领物资:提交物资领取申请...1.课设要求
设计一个物资发放管理系统,要求实现以人员、物资类别、物资的信息管理;实现物资发放任务发起管理;实现人员物资签领管理;实现物资统计管理。
2.功能模块
3.详细设计
(1)申领物资:提交物资领取申请。
(2)撤销申请:对于物资管理员还未审核的申请,可以撤销;已审核的申请则不能撤销。
(3)查看待领任务:查看已通过审核的申请和物资管理员发起的领取任务。
(4)物资信息管理:添加物资类别;添加、修改、删除物资信息;按名称或类别或编号查询物资信息。
(5)物资入库:增加物资的库存量;可以按入库时间来查看入库信息。
(6)物资发放:向指定人发放一定数量的物资,并在其领取后进行登记。
(7)查看物资库存:查看所有物资的库存量。
(8)审批申请:查看和审批物资领取申请,同意则员工可以领取物资,不同意则驳回该申请,不允许领取物资。
4.实现界面
-
登录
-
主界面
-
添加物资
-
查看物资库存
-
审批申请
-
-
数据库课程设计报告——库存物资管理系统
2011-06-13 16:30:09该系统采用Microsoft Access型数据库系统作为库存管理系统的后台数据库,Microsoft公司的Visual Basic 6.0工具为开发工具进行系统设计。该系统能实现库存管理,入库管理,出库管理,盘存管理,历史数据管理,打印和... -
《数据库课程设计》_大作业_公司的物资库存管理系统设计与开发.zip
2021-11-06 16:51:06适合学习数据库的人群,报告可以通过查重 -
基于java的物资管理系统的设计与实现(源码+数据库+论文)
2019-12-20 09:50:33提供了一个方便快捷的物资管理系统,方便出租物资的管理。 本课题以java和数据库技术为基础,采用B/S结构,用JSP为编程语言开发,实现物资租赁管理。完成以下内容设计: 1、基本功能设计:(1)系统用户管理(2)... -
《数据库课程设计》_大作业_公司的物资库存管理系统设计与开发.rar
2021-09-03 01:33:30《数据库课程设计》_大作业_公司的物资库存管理系统设计与开发 -
《数据库课程设计》_大作业_某物资供应公司的物资库存管理系统设计与开发.rar
2021-09-03 01:33:26《数据库课程设计》_大作业_某物资供应公司的物资库存管理系统设计与开发 -
库存物资管理系统Java SSM(Spring+SpringMVC+MyBatis)源代码
2019-05-28 21:13:22课程设计题目:库存物资管理 背景资料: 有一个存放商品的仓库,每天都有商品出库和入库。 每种商品都有名称、生产厂家、型号、规格等。 出入库时必须填写出入库单据,单据包括商品名称、生产厂家、型号、规格、数量... -
课程设计 物资管理系统(源码+报告+说明文档).zip
2022-04-10 22:40:24NET,以VS2005自带的ADO.NET引擎连接SQL SERVER2005数据库进行开发的物资管理系统,力求与实际相结合具有企业日常管理和检索等功能,旨在达到使企业的物资管理和人事数字化使之更加方便快捷以提高工作效率。... -
仓库管理系统设计数据库课程设计
2008-12-29 21:24:57这个系统设计出来以后能够在实际当中发挥作用,并能够在实际当中给仓库管理员带来方便,也能够在以后有需要的时候能够很方便的进行扩展,很方便的对这个数据库进行维护,而且用较小的资源消耗就能够实现这些基本功能... -
教务管理系统——数据库课程设计mysql+java
2022-01-15 18:14:031、按照题目《教务管理系统》(或自拟题目)的应用需求进行调研,通过需求分析、模拟数据,提取实体、实体与实体之间的联系,运用数据库设计方法进行数据库的设计,并插入一定量的实验数据。 2、根据系统的实际应用... -
仓库管理系统(数据库课程设计)
2020-06-30 12:20:19模拟设计一般仓库的管理内容,包括物资管理、仓库管理、入库操作、入库查询统计、出库操作、出库查询统计、库存查询统计等处理情况。主要内容如下: (1)分类管理物资信息(2)系统能管理多个仓库(3)能进行入/出库... -
库存物资管理系统Java SSM(Spring+SpringMVC+MyBatis)源代码.zip
2019-12-02 12:16:01课程设计题目:库存物资管理 背景资料: 有一个存放商品的仓库,每天都有商品出库和入库。 每种商品都有名称、生产厂家、型号、规格等。 出入库时必须填写出入库单据,单据包括商品名称、生产厂家、型号、规格、... -
《数据库课程设计》_大作业_某出版社的图书发行信息管理系统设计与开发_作品二.docx
2021-03-26 10:40:01本次课程设计的题目是物资库存管理系统,系统内容要求是:某物资供应公司有多个仓位,每一仓位有多个货物,一个货物仅隶属于一个仓位,一个货物仅有一个报损单,一个货物也仅有一个订单,一个采购单;但一次采购中有... -
38个数据库课程设计(大全)+SQLServer.zip
2021-03-26 11:25:40数据库课程设计_大作业_某物资供应公司的物资库存管理系统设计与开发_docx_ 数据库课程设计_大作业_销售管理系统设计与开发_docx_ 数据库课程设计_大作业_公司的物资库存管理系统设计与开发_docx_ 数据库课程设计_大... -
数据库课程设计(终极版).zip
2020-06-30 11:51:46模拟设计一般仓库的管理内容,包括物资管理、仓库管理、入库操作、入库查询统计、出库操作、出库查询统计、库存查询统计等处理情况。主要内容如下: (1)分类管理物资信息(2)系统能管理多个仓库(3)能进行入/出库... -
SQL service 数据库 某工厂的物料管理系统数据库设计与实现
2019-09-25 17:25:54创建触发器,实现物料入库和领用时相应物料库存的自动更新; 创建触发器,实现转仓时转入仓库物料增加、转出仓库物料减少; 创建存储过程统计各仓库各种物料的现存数量; 创建存储过程统计指定时间段内各种物料... -
数据库优秀课程设计——企业人事管理系统VB界面连接数据库 + 数据库课程设计报告
2010-04-24 20:39:52(10) 仓储物资管理系统的设计与实现 (11) 企业人事管理系统的设计与实现 (12) 选修课程管理系统的设计与实现 三、课程设计主要内容 (1)图书销售管理系统的设计与实现 调查一个书店的图书销售业务,设计的图书销售... -
数据库课程设计--仓库管理系统
2008-12-18 14:15:53这个程序是仓库管理系统的程序,刚刚课程设计完,把它拿出来晒晒... 和大家分享下... 算不上很好的美餐,但也能抵得住寒冷... 总会有需要的人,希望能为需要的人提供分参考资料... 仓库系统课程设计具体内容如下:...