数据库原理课程设计 进销存管理系统.docx

上传人:b****1 文档编号:22882456 上传时间:2023-04-28 格式:DOCX 页数:23 大小:164.40KB
下载 相关 举报
数据库原理课程设计 进销存管理系统.docx_第1页
第1页 / 共23页
数据库原理课程设计 进销存管理系统.docx_第2页
第2页 / 共23页
数据库原理课程设计 进销存管理系统.docx_第3页
第3页 / 共23页
数据库原理课程设计 进销存管理系统.docx_第4页
第4页 / 共23页
数据库原理课程设计 进销存管理系统.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

数据库原理课程设计 进销存管理系统.docx

《数据库原理课程设计 进销存管理系统.docx》由会员分享,可在线阅读,更多相关《数据库原理课程设计 进销存管理系统.docx(23页珍藏版)》请在冰豆网上搜索。

数据库原理课程设计 进销存管理系统.docx

数据库原理课程设计进销存管理系统

长治学院

课程设计报告

课程名称:

数据库原理课程设计

 

设计题目:

进销存管理系统

系别:

计算机系

专业:

计算机科学与技术

组别:

第一组

学生姓名:

韩伟伟学号:

08407106

起止日期:

2011年6月7日~2011年6月22日

指导教师:

马桂芳

目录

一、系统规划3

二、总体设计4

2.1系统功能简述5

三、数据库原理5

3.1系统原理概述5

3.1.1E—R图5

3.1.2系统原理概述5

3.1.3数据流图6

3.2逻辑结构设计6

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系统原理概述

管理信息系统的开发是一个复杂的系统工程,它涉及到计算机的处理技术、系统理论、组织结构、管理功能、管理知识等各方面的问题,每一种开发方法都要遵循相应的开发策略。

数据库由DBMS(数据库管理系统)处理,DBMS则由专业开发人员和用户通过应用程序直接或间接的使用。

数据库管理系统是指数据库系统中管理数据的软件系统。

它是数据库系统的核心组成部分。

对数据库的一切操作,包括定义,更新及各种控制,都是通过它实现的。

它总是基于某种数据模型,可以把DBMS看成是某种数据模型在计算机系统上的具体实现。

根据数据模型的不同,DBMS可以分成层次型、关系型、面向对象型等。

3.1.3数据流图

3.2逻辑结构设计

3.2.1基本表信息

表一商品信息表

字段名

数据类型

长度

是否允许空

说明

商品编号

varchar

10

主键,惟一标识商品记录

商品名称

varchar

50

单价

varchar

50

月产量

varchar

50

供应商名称

varchar

50

备注信息

text

16

表二供应商信息表

字段名

数据类型

长度

是否允许空

说明

供应商编号

varchar

10

主键,惟一标识供应商记录

供应商名称

varchar

50

供应商单位全称

地址

varchar

50

邮政编码

varchar

10

联系电话

varcgar

20

企业网址

varchar

50

联系人

varchar

50

联系人电话

varcgar

20

开户银行

varchar

50

银行账号

varchar

13

备注信息

text

16

表三客户信息表

字段名

数据类型

长度

是否允许空

说明

客户编号

varchar

10

主键,惟一标识客户记录

客户名称

varchar

50

客户单位全称

地址

varchar

50

邮政编码

varchar

6

联系电话

varchar

20

企业网址

varcgar

30

联系人

varchar

50

联系人电话

varcgar

20

开户银行

varchar

50

银行账号

varchar

20

备注信息

text

16

表四商品进货信息表

字段名

数据类型

长度

是否允许空

说明

入库序号

decimal

9

主键,惟一标识商品入库记录

商品编号

varchar

10

外键,对应商品信息表中商品编号

商品名称

varchar

50

供应商编号

varchar

10

外键,对应供应商信息表中供应商编号

供应商名称

varchar

50

规格

varchar

30

数量

varchar

10

单价

varchar

50

总金额

varchar

50

日期

datetime

8

经手人

varchar

20

备注信息

text

16

修改人

varchar

20

修改日期

datetime

8

表五商品库存信息表

字段名

数据类型

长度

是否允许空

说明

库存序号

decimal

9

主键,惟一标识商品库存记录

库存编号

varchar

30

库存名称

varchar

50

商品编号

varchar

10

外键,对应商品信息表中商品编号

规格

varchar

30

数量

varchar

10

单价

varchar

50

总金额

varchar

50

日期

datetime

8

备注信息

text

16

表六商品销售信息表

字段名

数据类型

长度

是否允许空

说明

出库序号

decimal

9

主键,惟一标识商品入库记录

出库编号

varchar

10

商品编号

varchar

10

外键,对应商品信息表中商品编号

商品名称

varchar

50

规格

varchar

30

数量

varchar

10

单价

varchar

50

总金额

varchar

50

出库日期

datetime

8

提货人

varchar

50

经手人

varchar

20

备注信息

text

16

修改人

varchar

20

修改日期

datetime

8

表七库存明细表

字段名

数据类型

长度

是否允许空

说明

盘点编号

varchar

10

主键,惟一标识商品盘点记录

商品编号

varchar

10

外键,对应商品信息表中商品编号

商品名称

varchar

50

规格

varchar

30

单价

varchar

50

账面库存

varchar

50

实盘库存

varchar

50

盘点人员

varchar

50

盘点日期

datetime

8

备注信息

text

16

表八用户信息表

字段名

数据类型

长度

是否允许空

说明

用户名

varchar

10

主键

用户密码

varchar

10

用户名称

varchar

50

备注信息

text

16

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

go

--查看库存视图

select*fromview_storage_product

--2创建订单信息视图

ifexists(select*fromsysobjectswherename='view_CustomerInfo_OrderInfo_ProductInfo')

dropviewview_CustomerInfo_OrderInfo_ProductInfo

go

createviewview_CustomerInfo_OrderInfo_ProductInfo

as

selectCustomerName,ProductName,OrderTime,OrderNumber,

RequireDate,OrderEmployee,IsConsignmentfromCustomerInfo

ainnerjoinOrderInfobona.CustomerID=b.CustomerID

innerjoinProductInfoconb.ProductID=c.ProductID

go

select*fromview_CustomerInfo_OrderInfo_ProductInfo

--3.创建添加客户信息的存储过程

ifexists(select1fromsysobjectswherename='proc_InsertCustomerInfo')

dropprocproc_InsertCustomerInfo

go

createprocedureproc_InsertCustomerInfo

@CustomerNamenvarchar(20),@CustomerAddressnvarchar(50),@CustomerPhonenvarchar(11),

@Taxnonvarchar(10),@Reputenvarchar(10),

@Countrynvarchar(10)='中国',@Provincenvarchar(10)

as

begin

insertintoCustomerInfovalues(@CustomerName,@CustomerAddress,@CustomerPhone,@Taxno,@Repute,@Country,@Province)

end

go

--调用存储过程

execproc_InsertCustomerInfo'胡雷松','湖北神农架','622512','622512','优秀',default,'河南'

select*fromCustomerInfo

--4.创建添加产品信息存储过程(需验证产品的价格必须大于等于0)

ifexists(select1fromsysobjectswherename='proc_InsertProductInfo')

dropprocedureproc_InsertProductInfo

go

createprocproc_InsertProductInfo

@ComponyIDint,@ProductNamenvarchar(20),@ProductTypenvarchar(20),@NumberPerMonthint,@Pricemoney

as

begin

if(@Price>=0)

begin

insertintoProductInfovalues(@ComponyID,@ProductName,@ProductType,@NumberPerMonth,@Price)

end

else

begin

print'产品价格必须大于0!

'

end

end

go

--调用存储过程

execproc_InsertProductInfoNULL,'C#入门经典','书籍',3000,65

select*fromProductInfo

--5.创建进货时库存信息变化的触发器

--①如果没有该产品的信息,则将数据添加到库存信息表中

--②如果仓库中已经存在该产品,则增加该产品的库存数量

ifexists(select1fromsysobjectswherename='trg_StockInfo_Insert')

droptriggertrg_StockInfo_Insert

go

createtriggertrg_StockInfo_Insert

onStockInfo

forinsert

as

declare@ProductIDint,@StockNumberint

select@ProductID=ProductIDfrominserted

select@StockNumber=StockNumberfrominsertedwhereProductID=@ProductID

if(@ProductIDnotin(selectProductIDfromStorageInfo))

begin

insertintoStorageInfovalues(@ProductID,'东北仓库',@StockNumber)

end

else

begin

updateStorageInfosetStorageNumber=StorageNumber+@StockNumberwhereProductID=@ProductID

end

go

--测试触发器

insertintoStockInfovalues(4,350,NULL,NULL,NULL,getdate(),'张三')

select*fromStorageInfo

select*fromStockInfo

--6.创建添加订单信息存储过程

--①订单时间默认为系统单前时间,②验证订单数量必须大于0③验证产品需要时间必须大于系统当前时间1月以上,④根据库存信息与产品生产能力判断,是否能在产品需要时间之前完成该产品的生产,⑤验证订单业务员长度必须大于2,⑥默认是否发货为“否”

ifexists(select*fromsysobjectswherename='proc_InsertOrderInfo')

dropprocproc_InsertOrderInfo

go

createprocproc_InsertOrderInfo

@ProductIDint,@OrderNumberint,@OrderEmployeenvarchar(20),@CustomerIDint,@Pricemoney,@Ordersummoney,@RequireDatedatetime,@IsConsignmentnvarchar

(2)

as

begin

declare@OrderTimechar(20)

select@ProductID=ProductIDfrominserted

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)

begin

if(@OrderNumber<(selectNumberPerMonthfromProductInfowhereProductID=@ProductID))

begin

insertintoOrderInfovalues(@CustomerID,@ProductID,@OrderTime,@OrderNumber,@Price,@Ordersum,@RequireDate,@OrderEmployee,'否')

end

end

end

go

--7.发货时库存信息的变化的触发器

--①如果发完货后,库存为0,则将该货物从库存信息表中删除,②如果发完货后,库存不为0,则减少相应的库存数量

ifexists(select1fromsysobjectswherename='trg_SendInfo_Insert')

droptriggertrg_SendInfo_Insert

go

createtriggertrg_SendInfo_Insert

onSendInfo

forinsert

as

declare@ProductIDint,@OrderIDint,@StorageNumberint

select@OrderID=OrderIDfrominserted

select@StorageNumber=StorageNumberfromStorageInfowhereProductID=@ProductID

go

createprocproc_StorageChange

@StorageNumberint,@ProductIDint,@OrderNumberint

as

select@StorageNumber=StorageNumberfromStorageInfowhereProductID=@ProductID

if(@StorageNumber=0)

begin

select@ProductID=ProductIDfromOrderInfowhereOrderID=(selectOrderIDfromSendInfo)

deletefromStorageInfowhereProductID=@ProductID

end

else

begin

select@OrderNumber=OrderNumberfromOrderInfowhereOrderID=(selectOrderIDfromSendInfo)

select@ProductID=ProductIDfromOrderInfowhereOrderID=(selectOrderIDfromSendInfo)

updateStorageInfosetStorageNumber=StorageNumber-@OrderNumberwhereProductID=@ProductID

end

go

select*fromStorageInfo;select*fromSendInfo;select*fromOrderInfo

--8.创建入库时总价自动生成的触发器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1