《某销售公司的数据库设计(共12页).doc》由会员分享,可在线阅读,更多相关《某销售公司的数据库设计(共12页).doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上数据库设计示例 应用背景某销售公司的数据库需要如下的数据处理: 每月造一张月报表,表中包括信息:顾客订单号、订货日期、交货日期、产品号、产品名、产品类型、订购数量、单价、金额、顾客号、顾客姓名、地址。 订货产品要组织货源,需要在终端上查询:输入:产品号输出:产品号、产品名、生产厂、出厂价、交货日期、交货数量 经理要了解某段时间的业务情况:输入:交货日期范围输出:客户所订货物的总数量、总金额 经理还要了解某段时间不同类型产品的订货情况:输入:订货日期范围输出:产品类型、订货数量、订货金额根据上述数据处理要求,设计并实现数据库系统。现假设有如下的原始单据:订货单据编号:
2、厂家: 交货日期:产品名规格型号单位单价数量金额合 计 金 额备注销售单据定单号: 顾客姓名: 定货日期: 交货日期: 产品名规格型号单位单价数量金额合 计 金 额备注 数据库系统设计一、需求分析1、通过调研并收集原始单据得到需求信息。2、进行需求分析,完成如下工作:(1)根据业务流程,绘制出数据流图(略)。(2)汇总各类数据,产生数据字典(其中根据需要对部分作了调整,有些项是添加的)。数据项说明如下,其余省略。数据项类型长度范围说明订单号字符6数字字符订货日期日期8交货日期日期8产品号字符6数字字符产品名字符20产品类型字符10订购数量整数4订购单价实数82金额实数102顾客编号字符6数字字
3、符顾客姓名字符20地址字符20二、设计E-R图1、从需求信息中提取出实体根据需求信息,可提取如下5种实体,并补充部分属性: 产品(产品号,产品名,产品类型,规格型号,单位,数量,单价,金额,备注) 顾客(顾客号,顾客姓名,地址) 厂家(厂家编号,厂家名称) 销售单(编号,用户,订货日期,交货日期,合计金额,备注) 订货单(编号,厂家名称,订货日期,交货日期,备注)2、确定实体之间的联系,绘制出E-R图(1)设计分E-R图通过分析,把实体及其之间的联系用两个分E-R图描述 厂家、订货单、产品及其之间的联系每个订货单向一个厂家订货,同一厂家可多次订货;每个订货单只订购一种产品,每种产品可多次订货。
4、 产品、销售单、顾客及其之间的联系每个销售单可订购多种产品;每种产品销售给多个顾客;同一用户可多次订货; (2)合并E-R图将上述E-R图合并:三、E-R图转换为关系模式按照E-R图到的转换规则,可将E-R图转化为关系模式(其中的属性作一些调整)。顾客(编号,姓名,地址,电话)厂家(厂家编号, )产品(产品编号,产品名称,产品类型,型号,单位,数量,单价,金额)订货单(编号,订货日期,交货日期,厂家编号,产品编号,交货数量,出厂价,金额,备注)销售单(编号,顾客编号,订货日期,交货日期,合计金额,备注)销售明细(编号,产品编号,订货数量,单价,金额)用表格形式详细说明各关系模式在SQL Ser
5、ver中的逻辑结构四、设计物理结构数据库名称:XSXX1、文件的设置: 数据文件data.mdf 日志文件log.ldf2、索引的设置为提高数据查询性能,可设置如下得所引: 对订货单表,按产品代码建立索引 对订货单表,按交货日期建立索引 对销售单表,按订货日期建立索引 其它索引五、实现数据库系统1、建立数据库结构(1)创建数据库CREATE DATABASE XSXX ON PRIMARY ( NAME=data, FILENAME=e:xsxxdata.mdf, SIZE=500MB, MAXSIZE= UNLIMITED, FILEGROWTH=50MB ) LOG ON ( NAME=l
6、og, FILENAME=e:xsxxlog.ldf, SIZE=50MB, MAXSIZE=UNLIMITED, FILEGROWTH=10MB)(2)创建表CREATE TABLE 产品 (产品编号 char(6) PRIMARY KEY,产品名称 varchar(30) NOT NULL,产品类型 varchar(10),型号 varchar(20),单位 char(6),数量 int NOT NULL, 单价 numeric(8,2),金额 numeric(10,2),备注 varchar(50) )(3)建立索引(4)定义视图CREATE VIEW 订货情况ASSELECT c.产品
7、编号,产品名称,产品类型,型号,厂家名称,出厂价,交货日期,交货数量,d.金额 FROM 订货单 d JOIN 产品 c ON d.产品编号 = c.产品编号 JOIN 厂家 f ON f.厂家编号 = d.厂家编号(5)定义触发器(实现数据完整性)订货单表增加操作时,应将数量和金额加到表产品中: CREATE TRIGGER 订货单_INSERT ON 订货单 AFTER INSERT AS SET NOCOUNT On DECLARE id char(6) DECLARE num int,sum numeric(10,2) SELECT id = 产品编号,num = 交货数量,sum =
8、 金额FROM inserted UPDATE 产品SET 数量 = 数量 + num , 金额 = 金额 + sum WHERE 产品编号 = id (6)定义存储过程CREATE PROCEDURE QUERY_DH bh char(6)AS SELECT 产品编号,产品名称,厂家名称,出厂价,交货日期,交货数量 FROM 订货情况WHERE 产品编号 = bh2、编写应用程序(1)服务器端主要编写用于查询的相关存储过程。(2)客户端详见“应用程序开发”部分。3、调试对服务器端,需调试存储过程和触发器。例如:调试触发器:运行下列语句可测试触发器的功能:INSERT INTO 订货单 VAL
9、UES(0003,2005-07-15,2005-07-30,40, 200, 8000,)调试存储过程:运行下列语句可测试存储过程QUERY_DH 4、试运行六、数据库系统的运行与维护 客户应用程序开发一、创建工程1、新建工程新建一个标准EXE工程,命名为”Demo”,主窗体命名为”FrmMain”,并将标题设置位“某销售公司管理系统”:2、添加类库打开“引用“对话框,选取Microsoft ActiveX Data Object 2.x Library3、添加部件打开“部件“对话框,选取本工程所使用的部件:本工程使用的主要部件包括: MicroSoft ADO Data Control 6
10、.0 (OLE DB) MicroSoft DataGrid Control 6.0 (OLE DB) MicroSoft Windows Common Control 6.0 (OLE DB)二、设计主窗体假设主窗体运行后为如下的布局:1、设计菜单在“工具”菜单下选择“菜单编辑器”,编辑主菜单:详细情况见下表:2、设计工具栏添加“MicroSoft Windows Common Control 6.0 (OLE DB)”部件到工具箱中,放置一个ImageList控件和一个ToolBar控件到主窗体中。(1)编辑图标 在ImageList控件的“属性页”中进行如下的工作: 在“通用”页中设置图
11、标的大小 在“图象”页中设计所使用的图标(2)设计工具栏在Tolbar控件的“属性页”中进行如下的工作: 在“通用”页中设置图象列表等属性: 在“按钮”页中设置按钮的属性:3、设计状态栏和背景放置一个StatusBar控件和一个Timer控件到主窗体中,设置Timer的Interval为100。设置主窗口的picture属性为背景图片。4、添加相关代码Private Sub Timer1_Timer() StatusBar1.Panels(1).Text=Format(Date, LONG DATE) & & TimeEnd Sub三、设计基本数据维护窗体1、 客户表维护窗体2、 厂家表维护窗体3、 产品表维护窗体四、设计单据输入1、 订货单2、 销售单五、设计查询窗体1、查询订货情况学习是成就事业的基石2、查询销售情况3、统计订货情况4、统计销售情况5、报表打印专心-专注-专业