数据库原理课程设计 进销存管理系统Word文档格式.docx
- 文档编号:3628930
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:23
- 大小:164.40KB
数据库原理课程设计 进销存管理系统Word文档格式.docx
《数据库原理课程设计 进销存管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库原理课程设计 进销存管理系统Word文档格式.docx(23页珍藏版)》请在冰点文库上搜索。
3.2.1基本表信息6
3.2.2存储过程\触发器\视图设计9
四、模块划分(系统管理模块实现)13
4.1系统登录界面及代码13
4.2系统管理模块界面及代码14
五、系统的优点及不足之处15
六、总结和致谢15
七、参考文献15
进销存管理系统
系统背景说明
待开发的软件系统的名称:
软件项目的用途:
用于数据库课程设计及商业用途
软件项目的范围:
系统涉及企业的库存,销售与进货提供了管理
功能,为库存,销售,进货等管理数据提供了分析功能
小组成员成员:
韩伟伟,令狐岩,李江民,杨捷
指导老师:
马桂芳
随着技术发展,电脑操作及管理日趋简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,因此企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。
一、系统规划
1.1可行性分析
经济上可行性分析
现在,计算机的价格已经十分低廉,性能却有了长足的进步。
而本系统的开发,为企业的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:
第一,本系统的运行可以代替人工进行许多繁杂的劳动;
第二,本系统的运行可以节省许多资源;
第三,本系统的运行可以大大的提高企业的工作效率;
第四,本系统可以使敏感文档更加安全,等等。
本产品的开发所需的设备在现有条件下,只需要少量的投入资金就可以实现。
因此在经济上是可行的。
技术上可行性分析
a)软件可行性
PowerBuilder具有丰富的数据库功能,可以直接建立和编辑数据库,使用结构化查询语言直接访问SQLSever上的数据库,并提供简单的面向对象的库操作命令、多用户数据库的加锁机制和网络数据库的编程技术。
SQLSever2000是由微软公司推出的,能提供超大型系统所需的数据库服务,并对数据库提供全面的保护,具有防止问题发生的安全措施,他是一个采用SQL语言的关系型数据库管理系统。
作为客户机/服务器的后端数据库,他是所有数据的汇总和管理中心。
b)硬件可行性
CPU:
奔腾三代以上。
OS(操作系统):
Windows2000/windows98以上。
内存:
64MB以上。
硬盘:
30G以上。
本系统的开发利用MicrosoftSQLServer2000作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。
使用PowerBuilder作为系统开发的开发环境,此开发工具开发数据库管理系统,采用面向对象的方式,方便、简捷、功能强大。
管理上可行性分析
课设指导老师给与了精心的讲解和大力的支持。
综上所述,系统在技术上、经济上、管理上都是可行的。
二、总体设计
2.1系统功能简述
根据生活经验,我们开发该系统主要是为了实现:
方便的查询信息,简单准确的进行插入和删除等操作。
所以在该系统中,我们主要实现了它的以上几个功能:
查询功能是在查询客户消费、购物情况等信息,是提供给管理者参考的;
插入、删除和保存功能是在客户信息表和购物信息表以及库存信息表中得到实现。
三、数据库原理
3.1系统原理概述
管理信息系统的开发是一个复杂的系统工程,它涉及到计算机的处理技术、系统理论、组织结构、管理功能、管理知识等各方面的问题,每一种开发方法都要遵循相应的开发策略。
数据库由DBMS(数据库管理系统)处理,DBMS则由专业开发人员和用户通过应用程序直接或间接的使用。
数据库管理系统是指数据库系统中管理数据的软件系统。
它是数据库系统的核心组成部分。
对数据库的一切操作,包括定义,更新及各种控制,都是通过它实现的。
它总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。
根据数据模型的不同,DBMS可以分成层次型、关系型、面向对象型等。
3.1.1E—R图
3.1.2系统原理概述
3.1.3数据流图
3.2逻辑结构设计
3.2.1基本表信息
表一商品信息表
字段名
数据类型
长度
是否允许空
说明
商品编号
varchar
10
否
主键,惟一标识商品记录
商品名称
50
是
单价
月产量
供应商名称
备注信息
text
16
表二供应商信息表
供应商编号
主键,惟一标识供应商记录
供应商单位全称
地址
邮政编码
联系电话
varcgar
20
企业网址
联系人
联系人电话
开户银行
银行账号
13
表三客户信息表
客户编号
主键,惟一标识客户记录
客户名称
客户单位全称
6
30
表四商品进货信息表
入库序号
decimal
9
主键,惟一标识商品入库记录
外键,对应商品信息表中商品编号
外键,对应供应商信息表中供应商编号
规格
数量
总金额
日期
datetime
8
经手人
修改人
修改日期
表五商品库存信息表
库存序号
主键,惟一标识商品库存记录
库存编号
库存名称
表六商品销售信息表
出库序号
出库编号
出库日期
提货人
表七库存明细表
盘点编号
主键,惟一标识商品盘点记录
账面库存
实盘库存
盘点人员
盘点日期
表八用户信息表
用户名
主键
用户密码
用户名称
3.2.2存储过程\触发器\视图设计
--1创建库存视图
ifexists(select1fromsysobjectswherename='
view_storage_product'
)
dropviewview_storage_product
go
createviewview_storage_product
as
selecta.*,b.StorageAddress,b.StorageNumberfromProductInfoainnerjoin
StorageInfobona.ProductID=b.ProductID
--查看库存视图
select*fromview_storage_product
--2创建订单信息视图
ifexists(select*fromsysobjectswherename='
view_CustomerInfo_OrderInfo_ProductInfo'
dropviewview_CustomerInfo_OrderInfo_ProductInfo
createviewview_CustomerInfo_OrderInfo_ProductInfo
selectCustomerName,ProductName,OrderTime,OrderNumber,
RequireDate,OrderEmployee,IsConsignmentfromCustomerInfo
ainnerjoinOrderInfobona.CustomerID=b.CustomerID
innerjoinProductInfoconb.ProductID=c.ProductID
select*fromview_CustomerInfo_OrderInfo_ProductInfo
--3.创建添加客户信息的存储过程
proc_InsertCustomerInfo'
dropprocproc_InsertCustomerInfo
createprocedureproc_InsertCustomerInfo
@CustomerNamenvarchar(20),@CustomerAddressnvarchar(50),@CustomerPhonenvarchar(11),
@Taxnonvarchar(10),@Reputenvarchar(10),
@Countrynvarchar(10)='
中国'
@Provincenvarchar(10)
begin
insertintoCustomerInfovalues(@CustomerName,@CustomerAddress,@CustomerPhone,@Taxno,@Repute,@Country,@Province)
end
--调用存储过程
execproc_InsertCustomerInfo'
胡雷松'
'
湖北神农架'
622512'
优秀'
default,'
河南'
select*fromCustomerInfo
--4.创建添加产品信息存储过程(需验证产品的价格必须大于等于0)
proc_InsertProductInfo'
dropprocedureproc_InsertProductInfo
createprocproc_InsertProductInfo
@ComponyIDint,@ProductNamenvarchar(20),@ProductTypenvarchar(20),@NumberPerMonthint,@Pricemoney
if(@Price>
=0)
begin
insertintoProductInfovalues(@ComponyID,@ProductName,@ProductType,@NumberPerMonth,@Price)
end
else
print'
产品价格必须大于0!
'
execproc_InsertProductInfoNULL,'
C#入门经典'
书籍'
3000,65
select*fromProductInfo
--5.创建进货时库存信息变化的触发器
--①如果没有该产品的信息,则将数据添加到库存信息表中
--②如果仓库中已经存在该产品,则增加该产品的库存数量
trg_StockInfo_Insert'
droptriggertrg_StockInfo_Insert
createtriggertrg_StockInfo_Insert
onStockInfo
forinsert
declare@ProductIDint,@StockNumberint
select@ProductID=ProductIDfrominserted
select@StockNumber=StockNumberfrominsertedwhereProductID=@ProductID
if(@ProductIDnotin(selectProductIDfromStorageInfo))
insertintoStorageInfovalues(@ProductID,'
东北仓库'
@StockNumber)
else
updateStorageInfosetStorageNumber=StorageNumber+@StockNumberwhereProductID=@ProductID
--测试触发器
insertintoStockInfovalues(4,350,NULL,NULL,NULL,getdate(),'
张三'
select*fromStorageInfo
select*fromStockInfo
--6.创建添加订单信息存储过程
--①订单时间默认为系统单前时间,②验证订单数量必须大于0③验证产品需要时间必须大于系统当前时间1月以上,④根据库存信息与产品生产能力判断,是否能在产品需要时间之前完成该产品的生产,⑤验证订单业务员长度必须大于2,⑥默认是否发货为“否”
proc_InsertOrderInfo'
dropprocproc_InsertOrderInfo
createprocproc_InsertOrderInfo
@ProductIDint,@OrderNumberint,@OrderEmployeenvarchar(20),@CustomerIDint,@Pricemoney,@Ordersummoney,@RequireDatedatetime,@IsConsignmentnvarchar
(2)
declare@OrderTimechar(20)
select@OrderNumber=OrderNumberfrominserted
select@OrderEmployee=OrderEmployeefrominserted
select@CustomerID=CustomerIDfrominserted
select@Price=Pricefrominserted
select@Ordersum=Ordersumfrominserted
set@OrderTime=convert(char(20),getdate(),120)
set@RequireDate=convert(char(20),dateadd(month,1,getdate()),120)
if(@OrderNumber>
0andlen(@OrderEmployee)>
2anddatediff(dd,@OrderTime,dateadd(month,1,getdate()))=0)
if(@OrderNumber<
(selectNumberPerMonthfromProductInfowhereProductID=@ProductID))
begin
insertintoOrderInfovalues(@CustomerID,@ProductID,@OrderTime,@OrderNumber,@Price,@Ordersum,@RequireDate,@OrderEmployee,'
否'
end
--7.发货时库存信息的变化的触发器
--①如果发完货后,库存为0,则将该货物从库存信息表中删除,②如果发完货后,库存不为0,则减少相应的库存数量
trg_SendInfo_Insert'
droptriggertrg_SendInfo_Insert
createtriggertrg_SendInfo_Insert
onSendInfo
declare@ProductIDint,@OrderIDint,@StorageNumberint
select@OrderID=OrderIDfrominserted
select@StorageNumber=StorageNumberfromStorageInfowhereProductID=@ProductID
createprocproc_StorageChange
@StorageNumberint,@ProductIDint,@OrderNumberint
if(@StorageNumber=0)
select@ProductID=ProductIDfromOrderInfowhereOrderID=(selectOrderIDfromSendInfo)
deletefromStorageInfowhereProductID=@ProductID
select@OrderNumber=OrderNumberfromOrderInfowhereOrderID=(selectOrderIDfromSendInfo)
select@ProductID=ProductIDfromOrderInfowhereOrderID=(selectOrderIDfromSendInfo)
updateStorageInfosetStorageNumber=StorageNumber-@OrderNumberwhereProductID=@ProductID
select*fromStorageInfo;
select*fromSendInfo;
select*fromOrderInfo
--8.创建入库时总价自动生成的触发器
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理课程设计 进销存管理系统 数据库 原理 课程设计 进销存 管理 系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)