供应商订单管理系统数据库设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库课程设计
题目
供应商订单管理系统
班级:
学号:
姓名:
提交日期:2010 年 3
月 13 日
目录
一、背景及需求分析:
1.1 背景介绍
随着市场经济的飞速发展, 企业生产力不断提高,传统订单管理基于简单的系设计除了简单,不安全外,同时操作平台受到限制,显然是适应不了制造业复杂的时务需求。企业要不断开发客户市场,必须联系方式有较为全面的了解,还要作好财务的收付工作和产品管理工作。同时收集处理信息的速度、准确性、安全性,还影响到公司整体的管理水平和决策层对整体业务的控制和协调。采用更高级流行的计算机软件管理信息是解决上述问题的一个行之有效的办法,促使完整实用于制造企业的订单管理系统的迫待开发。
1.2需求分析
我国目前的订单管理软件很多,大多是针对商业的订单进行整体分析设计综合管理,而且进行事务处理的表都非常综合单调,同时大多数是基于最早的VB设计和access数据库这些简单的设计工具,高科技发展的现代显然这种管理方式不安全而且受到平台的限制,基于这种现状制造企业订单管理系统,就是根据制造业业务流程,将企业业务的各类数据联系起来,组成一个有机的系统,使得业务、财务、市场等方面的信息得以方便、快捷地传递并经过精细和综合处理生成各种报表送交给各个职能部门及决策层同时增添了
订单警示功能,不仅可以节省大量的人力,减少工作中的失误,对客户的询问可以迅速的从电脑中查询信息答复客户,而且不受平台限制,B/S是目前很好的数据库访问结构,基于封装行非常好的安全性大大有所提高,加上功能的齐全,使其提高了竞争力和增强了安全性。
21世纪数据库技术发展专家研讨会"。IBM DB2的创始人Donald Haderle先生与国内着名数据库专家,就下世纪数据库发展的趋势、数据库领域革命性的突破、IBM DB2的应用、数据订单的实施、我国数据库技术和应用的现状及趋势、我国数据库用户的需求等问题,进行了广泛而深入的讨论。
数据库系统的选择原则
(1)数据库系统采用易于集成的,开放的技术。
(2)产品质量优异,可靠性高,适于长期运行,能支持关键应用。
(3)数据安全,保安型高。
(4)能提供分布式数据库功能。
(5)支持多种开发环境,软件开发容易。
(6)扩充性和升级能力强。
本数据库是为了满足一般经销商的下列需求而设计的
1.管理供应商;可以随时查看供应商的情况
2.管理产品目录;可以随时了解产品的详细情况
3.管理客户列表;可以随时跟踪并进一步了解客户的情况
4.录入客户订单;可以随时更新订单系统,保持最新的信息
二、系统功能设计
1、数据录入功能:提供客户,供应商,订单和产品的信息登记和录入。
2、数据查询功能:查询客户,供应商,订单和产品的相关信息。
3、数据统计功能:统计订单,产品等。
三、 E-R模型
实体E-R图
实体转换为表之后的关系图
四、转换为关系模式、表结构设计
1、关系模式:
Customers(cust_id,cust_name,cust_address,cust_phone,cust_email) Orders(order_num,order_date,cust_id)
OrderItems(order_num,order_item,prod_id,quantity,item_price)
Products(prod_id,vend_id,prod_name,prod_price,prod_desc) Venders(vend_id,vend_name,vend_address,vend_phone)
说明:加粗体的列名是主键,斜体是外键。
2、表结构设计:
五、完整性设计:
主键约束:cust_id、order_num、order_item、order_num、prod_id、vend_id
外键约束:order_num、cust_id、vend_id
检查约束:在表OrderItems中quantity>0
惟一约束:cust_name、quantity、item_price、order_date、prod_name、prod_price、vend_name为空性
标识列:cust_id、order_num、order_item、order_num、prod_id、vend_id
六、数据库对象设计
1、存储过程
(1)存储过程名:MailingListCount用途:对邮件发送清单中具有邮件地址的客户进行计数
CREATE PROCEDURE MailingListCount
AS
DECLARE @cnt INTEGER
SELECT @cnt=COUNT(*)
FROM Customers
WHERE NOT cust_email IS NULL;
RETURN @cnt;
GO
(2)存储过程名:NewOrder 用途:在Orders表中插入一个新订单。
CREATE PROCEDURE NewOrder @cust_id CHAR(10)
AS
--Insert new order
INSERT INTO Orders(cust_id)
VALUES(@cust_id)
--Return order number
SELECT order_num=@@IDENTITY;
GO
2、视图
视图名:ProductCustomer 用途:联结三个表,以返回已订购了任意产品的所有客户的列