数据库系统课程设计报告设计题目:合同管理系统专业网络工程班级一班组长其他成员指导教师孙菁起止时间2016.11.291.项目背景1.1选题背景目前手工管理合同,由于涉及的部门众多,需要管理的合同要素也各不相同,因此造成信息不集中,实时性不强,导致各部门协作,业务流程组建,监控制度执行方面效率不高,费时费力等问题,具体表现在:文档管理困难、进度控制困难、信息汇总困难、缺少预警机制。合同管理系统,是建立在信息技术基础上,利用现代企业的先进管理思想,为企业提供决策、计划、控制与经营业绩评估的全方位、系统化的合同管理平台。合同管理管理系统可以为企业带来如下价值:规范基础数据、提高管理效率、实现标注化管理和个性化管理的有机结合、为领导决策提供准确及时广泛的信息、为用户提供全面合同管理的解决方案。总之,通过合同管理的应用和实施,可以为合同管理信息化,和合同管理能力提升提供一个最佳的结合点,切实打造企业核心竞争力。1.2系统目标和实现技术企业合同管理系统的主要目标是对合同和供应商信息的管理,并且提供对供应商和客户发票的管理。对合同的管理主要指管理者对合同信息的创建,对供应客户信息的创建、对供应商发票的创建、对客户信息的整理,不管是合同信息还是供应客户信息还是发票信息,管理者都应该最基本的操作方式:添加、查询、修改、删除。系统目标详细说明:记载客户信息,管理客户资料;与客户签订供货合同,审核合同的有效性,管理购货合同资料。记载每次与客户签订的供货日期、数量、应付款、应付日期等有效信息,并且管理供应商发票资料。系统功能目标图软件支持以及开发工具:操作系统:windows8.1数据库软件:PowerDesigner应用系统开发软件:VisualC++6.02需求分析紧密围绕所确定的系统目标,展开详细的需求分析,该阶段内容主要有:2.1业务流程分析合同管理系统客户供应商信息合同信息发票信息添加新的客户信息查询新的客户信息修改新的客户信息删除新的客户信息添加合同信息查询合同信息修改合同信息添加发票信息修改发票信息修改发票信息业务分析如下:整个流程由企业、客户、供应商三大部分组成;企业做出招标计划,供应商做出投标计划,企业各部门参加会议讨论,做出供应商报表给企业相关负责人进行审批;审批通过,企业与供应商签订合同,并且生成合同表;财务处给出供应商发票报表;销售部门进行销售,并且与客户签订合同,生成合同表;财务处给出客户发票报表;招标小组供应商投标小组各部门招标计划投标计划讨论开会各部门上报表报表审批合同负责人销售销售部门客户销售部签订合同客户发票财务处签订合同合同负责人供应商负责人供应商发票财务处业务流程分析图2.2数据流程分析数据流图采用自顶向下的方法进行分析并画出:客户处理订单签订合同生成发票信息企业负责人订单合同发票订单发表报表合同报表订单报表认购签订合同生成发票信息供应商订单合同发票订单认购表合同表发票表创建订单订单信息客户信息产品信息订单日期签订合同合同信息客户信息企业信息合同日期生成发票信息发票信息客户信息发票日期企业信息2.3数据字典根据对企业合同管理系统的分析,可以定义以下几个结构体:供应商、客户信息,订单信息,认购表信息,合同信息,供应商发票信息,客户发票信息。数据流:1.名称:订单信息描述:客户需求产品的描述等信息来源:客户去处:合同管理系统的客户订单信息处2.名称:合同信息描述:客户与企业签订的合同信息原来:客户/企业去处:合同管理系统的合同管理处3.名称:客户发票描述:企业财务处给出的客户产品费用一览信息来处:企业财务处去往:合同管理系统的发票管理处4.名称:认购表描述:企业向供应商收购产品信息来处:企业认购处去处:合同管理系统的认购管理处5.名称:合同信息描述:企业与供应商之前签订的合同信息来源:供应商/企业去处:合同管理系统的合同管理处6.名称:供应商发票描述:企业财务处给出的客户产品费用一览信息来处:企业财务处去处:企业管理系统的发票管理处数据存储:1.名称:客户订单流入数据流:添加、修改客户订单流出数据流:检索客户订单组成:产品号+产品数量+产品金额+日期+订单公司2.名称:企业与客户合同流入数据流:添加、修改合同信息流出数据流:检索合同信息组成:合同号+合同日期+货种+合同数量+买入价格+出口港+卸货港+到期日期+卖出单价+实际提货数量3.名称:客户发票信息流入数据流:添加、修改发票信息流出数据流:检索发票信息组成:买方发票号+合同号+应收日期+提货数量+应收金额4.名称:企业认购单流入数据流:添加、修改认购单信息流出数据流:检索认购单信息组成:产品号+产品数量+产品单价+应付金额+提货日期5.名称:企业和供应商合同流入数据流:添加、修改合同信息流入数据流:检索合同信息组成:合同号+合同日期+货种+合同数量+买入价格+出港口+卸货口+到期日期+卖出单价+实际提货数量6.名称:供应商发票流入数据流:添加、修改发票信息流出数据流:检索发票信息组成:卖方发票号+合同号+应付日期+提货数量+提货日期+船名+应收金额数据处理描述1.处理名:登记客户订单处理定义:当客户发出订单时,按照订单号依次进入合同管理系统,并且进行登记激发条件:订单信息准确2.处理名:签订合同处理定义:当客户与企业意见一致时,签署合同,并且将合同信息载入合同管理系统激发条件:客户企业意见一致3.处理名:生成发票信息处理定义:当客户对发票信息没有问题时,由企业财务处开出发票,并且将客户发票信息记入合同管理系统激发条件:客户对发票信息无异议4.处理名:登记认购单处理定义:企业因产品不足需向供应商购买产品,记载如合同管理系统激发条件:企业需求5.处理名:签订合同处理名:企业和供应商意见一致时,签署合同,并且将合同信息载入合同管理系统激发条件:供应商企业意见一致6.处理名:供应商发票信息处理定义:当供应商对发票信息没有问题时,由企业财务处开出发票,并且将客户发票信息记入合同管理系统激发条件:供应商对发票信息无异议供应商、客户信息的数据项描述:数据项名类型长度备注编号Int4Key名称Char10地址Char80开户账号Char10联系人Char20电话Int4订单信息的数据项描述:数据项名类型长度备注产品号Char100Key产品数量Int10000产品单价Money100000订单日期Date3订单公司Char4合同信息的数据项描述:数据项名类型长度备注合同号Int4Key合同日期Datetime8货种Char10合同数量Int4价格Money8出口港Char40卸货港Char40到期日期Datetime8卖出单价Money8实际提货数量Int4供应商发票信息的数据项描述:数据项名类型长度备注卖方发票号Int4Key合同号Int4应付日期Datetime8提货数量Int4提货日期Datetime8船名Char20应收金额Money8客户发票信息的数据项描述:数据项名类型长度备注买方发票号Int4Key合同号Int4应收日期Datetime8提货数量Int4应收金额Money8按照数据流程图分层和每层数据流程图数据对象出现的先后顺序编写相对应的详细的数据字典,数据字典应包含数据流、数据存储、数据处理、外部实体和数据项等五个部分。3概念结构设计4逻辑结构设计5物理结构设计/*==============================================================*//*DBMSname:MicrosoftSQLServer2008*//*Createdon:2016/11/2920:56:38*//*==============================================================*/ifexists(select1fromsysobjectswhereid=object_id('供应商')andtype='U')droptable供应商goifexists(select1fromsysindexeswhereid=object_id('发票')andname='Relationship_2_FK'andindid0andindid255)dropindex发票.Relationship_2_FKgoifexists(select1fromsysindexeswhereid=object_id('发票')andname='Relationship_6_FK'andindid0andindid255)dropindex发票.Relationship_6_FKgoifexists(select1fromsysobjectswhereid=object_id('发票')andtype='U')droptable发票goifexists(select1fromsysindexeswhereid=object_id('合同信息')andname='Relationship_6_FK'andindid0andindid255)dropindex合同信息.Relationship_6_FKgoifexists(select1fromsysindexeswhereid=object_id('合同信息')andname='Relationship_5_FK'andindid0andindid255)dropindex合同信息.Relationship_5_FKgoifexists(select1fromsysobjectswhereid=object_id('合同信息')andtype='U')droptable合同信息goifexists(select1fromsysobjectswhereid=object_id('客户')andtype='U')droptable客户goifexists(select1fromsysindexeswhereid=object_id('客户发票')andname='Relationship_7_FK'andindid0andindid255)dropindex客户发票.Relationship_7_FKgoifexists(select1fromsysobjectswhereid=object_id('客户发票')andtype='U')droptable客户发票goifexists(select1fromsysindexeswhereid=object_id('订单信息')andname='Relationship_7_FK'andindid0andindid255)dropindex订单信息.Relationship_7_FKgoifexists(select1fromsysobjectswhereid=object_id('订单信息')andtype='U')droptable订单信息go/*==============================================================*//*Table:供应商*//*==============================================================*/createtable供应商(供应商编号char(10)notnull,供应商名称char(10)notnull,供应商地址char(80)notnull,供应商开户账号char(10)notnull,供应商联系人char(20)notnull,供应商电话intnotnull,constraintPK_供应商primarykeynonclustered(供应商编号))go/*==============================================================*//*Table:发票*//*==============================================================*/cr