当前位置:文档之家› CRM客户关系管理系统的设计与实现最终版单面111

CRM客户关系管理系统的设计与实现最终版单面111

武汉工程大学邮电与信息工程学院

毕业设计(论文)

论文题目CRM客户关系管理系统

学号0841030214

学生姓名梁涛

专业班级08级计算机科学与技术02班

指导教师郭炜

总评成绩

2012年6月10日

目录

摘要........................................................................................................................................... I ABSTRACT....................................................................................................................................II 第一章绪论 (1)

1.1课题概述 (1)

1.2CRM国内外研究现状及其发展趋势 (2)

第二章系统需求分析及系统功能设计 (4)

2.1系统开发背景 (4)

2.2系统需求分析 (4)

2.3系统功能模块设计 (8)

第三章数据库技术应用 (10)

3.1数据库设计的方法 (10)

3.2数据库设计的原则 (10)

3.3数据库表设计 (11)

https://www.doczj.com/doc/c018413559.html,技术 (14)

第四章系统功能实现 (16)

4.1设计原则 (16)

4.2系统实现 (16)

第五章总结与展望 (26)

5.1总结 (26)

5.2展望 (26)

致谢 (27)

参考文献 (28)

摘要

客户关系管理强调以客户为中心,企业的活动围绕客户展开。本文旨在设计开发一个适合中小企业的客户关系管理系统,使企业应用客户关系管理的理念,提高企业的客户关系管理水平。

本文根据中小企业特点,结合对CRM理论及相关技术的研究和对系统的需求分析,确定了系统的实现方案。本文设计的系统采用Browser/Server三层体系结构模式进行设计。该系统应用Microsoft SQL Server 2000 作为数据库服务器,采用Microsoft Visual Studio .NET 2008 作为开发平台,使用C#语言进行应用程序的开发,应用https://www.doczj.com/doc/c018413559.html,技术实现在Internet上高效数据库通信。结合开发系统的需求特点,确定了CRM系统功能模块和业务流程,完成了系统总体功能设计和各子系统的详细功能设计。本文CRM 系统设计实现了客户资源管理、客户发展管理、客户服务管理、分析决策管理、基础配置管理五个子系统。

本文设计实现的CRM系统可运行在WindowsXP操作系统上, 并进行了系统的实验室测试,运行良好。

关键词:客户关系管理;https://www.doczj.com/doc/c018413559.html,;https://www.doczj.com/doc/c018413559.html,;存储过程

Abstract

Customer Relationship Management stresses the customers as center, and all work of enterprises are surrounding customers. The Customer Relationship Management system which could befit small and medium-sized enterprises is developed.The enterprises apply the idea of Customer Relationship Management to improve the management level of the enterprises.

Using the theory and development technology of CRM system and the analysis of the system demand, the project for effectuating the system is established according to the characteristics of small and medium-sized enterprises. The system is designed with Browser/Server model of the three-tier architecture. Microsoft SQL Server 2000 is adopted as background database, Microsoft Visual Studio .NET 2008is adopted as developing tool, C# is adopted as developing language and https://www.doczj.com/doc/c018413559.html, application technology is adopted as the efficient Internet database access.

According to the characteristics of system requirement,the functional model of the CRM system is established, the business process, the overall system function structure and subsystem detailed function structure are designed. The CRM system is designed into 5 subsystems:Customer Resource Management system, C ustomer Development Management system, Customer Service Management system, Analysis Decision Management system, Configuration Management system.

Analysis and decision algorithm is studied and 3 assessment algorithms: Factors impact assessment algorithm, Performance Assessment Algorithm and Complaints assessment algorithm are designed . Using these algorithms in the system, assessment analysis of the reasons for the loss of customers, employee performance assessment analysis, customer complaint assessment analysis etc are achieved, which can provide the analysis decision basis for the enterprise decision.

The concrete function of every subsystem is developed according to the principle of system design. the technology of stored procedur is studie, and the stored procedure is utilizeed to efficiently and flexibly operate database, to improve the system operating efficiency.

In this paper, the CRM system can be run on Windows2000/2003/XP operating system. It is debugged in laboratory and runs well.

Keywords: CRM;https://www.doczj.com/doc/c018413559.html,;Analysis and decision algorithm;Stored procedur

第一章绪论

1.1课题概述

1.1.1 课题来源

本课题来源于广西壮族自治区南宁市科学技术局2005年实施的科技攻关项目:面向用户定制的中小企业ERP系统开发设计(20040209A)。

1.1.2 课题背景及意义

随着电子商务的深入发展,以客户为驱动的生产战略越来越受到国内外企业的重视和认同。客户驱动经营模式有赖于在客户与企业内部之间建立一个畅通、快速、准确的信息系统,客户关系管理(CRM, Customer Relationship Management的缩写)系统是其中典型代表之一。

从宏观上来看,整个社会经济的发展己经进入了以“客户”、“竟争”、“变化”为主线的新经济时代。在这个时代,产品同质化的趋势越来越明显,竞争的焦点也己经从产品的功能、价格的竞争转向品牌、服务的竞争,最终转为客户资源的争夺。所以,企业如何与客户建立和保持一种长期、良好的合作关系;如何掌握客户资源、赢得客户信任;如何根据客户需求及价值,制定出企业发展战略和市场策略,提供满足客户需要的产品和服务,将是企业竞争力的关键所在。

CRM的核心思想是以客户为中心,它是企业从传统的“以产品为中心”的经营理念发展为“以客户为中心”的产物。这就意味着企业将把客户作为其动作的核心,也就是说企业的一切活动都是围绕客户展开,客户需要什么,企业就做什么。CRM的宗旨就是改善企业与客户的关系,使客户时刻感觉到企业的存在,企业随时了解到客户的变化。这种思想将推动企业最大限度的利用其与客户有关的资源,实现企业从市场营销到销售到最后的服务和技术支持的交义立体管理。

20世纪80年代Intenret的诞生,在信息技术领域成为一个新的起点,也是一次深远的革命。信息技术不仅使每个人受益,同时从这一刻开始,它真正使得整个社会作为一个整体从信息技术中获益,工业化社会从此开始了向信息化社会的过渡。Intenret技术的成熟使信息化技术的开发达到了一个新的高度。

1.2 CRM国内外研究现状及其发展趋势

1.2.1 CRM国外研究现状

客户关系管理是围绕客户生命周期的发生和发展,针对不同价值的客户实施以客户满意为目标的营销策略,通过企业级协同,有效的“发现、保持和留住客户”,从而达到发展客户、留住客户、缩短销售周期、降低销售成本、扩大销售量、增加收入与利润、抢占更多的市场份额,实现企业利润最大化的目的,最终提升企业的核心竞争力[14]。

CRM自提出之后,其市场就一直以惊人的速度在增长。目前国外比较成熟的CRM 软件产品主要有Siebel公司的Siebel System,SAP公司的MySAP CRM,Oracle公司的Oracle CRM,微软公司的Microsoft CRM等软件产品。

国外CRM软件的优势主要体现为:1、具有雄厚的实力,在技术力量的培养、研发、市场推广等方面大力投入;2、具有一批包括硬件厂商,数据库公司,咨询公司在内的合作伙伴,形成强强联手的格局;3、国外CRM软件伴随着管理理论的发展而发展,其设计思路蕴涵了西方先进的管理理念;4、国外CRM软件起步较早,完整性和成熟性高,开发了适用于不同行业的解决方案;5、西方发达国家已广泛使用这些CRM软件,并且与ERP系统和SCM系统集成,使得国外CRM系统的应用优势更加突出[15];6、国外CRM软件对于基于互联网技术的研究和支持不遗余力,使得其易用性大大加强[16]。

国外CRM软件的不足:1、国外CRM软件本土化方面不尽如人意;2、国外CRM 软件相对价格较高,对实施企业造成了较沉重的费用负担;3、国外CRM产品源自西方的管理思想,在有些方面不符合中国国情和中国商业环境的需要,企业实施风险大;4、本地技术力量支持不够。

总的来说,国外CRM起步较早,产品历经上千家企业、上万个用户的检验,积累了丰富的管理和实施经验,软件较为成熟,稳定性很高,可扩展性较强,功能模块健全。但是,国外CRM软件在国内的实施应用存在一些不足也不能忽视。

1.2.2 CRM国内研究现状

CRM在中国,最早应该追溯到互联网经济如日中天的1999年。1999年8月6日朗讯科技(中国)公司商业通讯系统部在京举办了以“营造完美电信呼叫中心”主题的研讨会,介绍了其全新的客户关系管理(CRM)解决方案,并强调指出,商业部门必须着眼于客户关系,提供独具特色的个性化服务,才能在网络经济时代立于不败之地。1999年9月27日,有国内IT第一媒体之称的《计算机世界报》连载关于Oracle细说客户关系管理(CRM)的文章。2000年3月27至4月4日Oracle公司首次在北京、上海、长沙等地举行了电子商务巡展活动。在这些巡展活动上,Oracle 公司介绍了其Internet平台产品Oracle 8i和包括CRM、ERP、SCM、战略性企业管理系统(SEM)、Portal-To-Go 在内的全面集成的电子商务解决方案。

作为“泊来品”,CRM自1999年进入中国以来,经历8年的发展,并没有如人们当初预期的那样成为“IT英雄”,CRM市场陷入尴尬局面。CRM除了在房地产、银行、保险等少数行业被小范围认可外,CRM更多给人的印象是“中看不中用”,高达45%的CRM 实施失败率曾经让人们开始质疑CRM的可行性,与ERP概念逐渐为人们接受相比,CRM 在中国正进入困难时期。

然而,但这并不是说基于先进营销理念的CRM本身有什么问题,而是中国企业所处的市场环境及管理现状与西方企业有很大的区别。目前,国内大部分中小企业信息化

基础还相对较差,还没有建立起基本的管理信息平台(MIS),大量关于客户、合作伙伴、产品、交易记录和商业机会的信息资料分散于各部门及员工的私人邮件、传真文件、文本文档、工作簿中,现在要求他们一步到位地导入标准化CRM体系,进行复杂的业务流程重组,将销售业务的运作和人员活动强行细分管理,这只能成为中小企业的不可承受之重。

CRM 在我国的几个特点[17]:

1、还处在起步阶段,市场体系不完善,分化严重

我国的CRM 市场起步较晚,无论是从产品、区域、行业,还是从销售来看,整个市场体态都还不健全。目前主要集中在北京、上海等经济发达地区;而在应用行业则主要是信息化程度较高的行业为主。在这些地区和行业中也初步建立自己的信息化平台,而在其它地区和行业中则是闻之甚少。

2、CRM逐渐被国内企业熟悉和接受,市场需求量加大

在经过一段较长时间对客户关系管理系统的认识之后,CRM逐渐被国内众多的用户所熟悉和接受。在竞争激烈的信息化时代,客户关系管理系统给企业带来了更大的经济效益,这使得很多企业用户对CRM 的市场需求加大。

3、缺乏适合的产品

虽然自CRM 进入国内后,很多软件厂商纷纷推出了自己的CRM 产品,但是能够提供功能比较全面、适合中小企业的实际情况的CRM 产品的国内厂商很少。

1.2.3 CRM的发展趋势

根据企业需求,企业信息化行业进行预测,未来的CRM将会更为充分地体现Internet 的根本要求。CRM技术的发展将会体现如下趋势:以Internet应用为核心并支持企业开展电子商务的CRM将在今后成为CRM产品发展的一个重要方向[18]。

从更广的意义上来讲,传统的CRM只是通过明确的规则和优化的工作流程帮助企业控制与客户的互动。但Internet将交流与达成交易的权力更多地移向客户一端,企业将不得不给予客户对于双方关系的更多控制权。例如以在线销售、客户服务、客户需要的信息等来架构商业交互的方式。只有真正基于Internet平台的CRM产品,才能够支持未来企业全面电子化运营的需要。

CRM系统是决策支持需求驱动的系统,它以企业日常业务处理的各类数据为基础,利用数据库技术或商业智能系统,对业务数据进行综合分析或预测。在业务发展、企业市场经营战略等问题上为领导者提供决策帮助[1]。

CRM不仅意味着能够由内到外为企业提供服务的系统,可以交互地处理客户的服务要求和销售任务。只有真正基于Internet平台的CRM产品,才能够支持未来企业全面电子化运营的需要。以后会有越来越多的功能通过Web浏览器即可完成,以适应快速发展的电子商务对数据不断进行实时访问的要求[2]。通用模块完善、基于Web应用、决策支持需求驱动、支持电子商务的CRM,将会是技术的发展方向和市场更需要的产品[19]。

第二章系统需求分析及系统功能设计

2.1系统开发背景

中小企业面临着越来越大的竞争,以客户为中心的思想逐渐成为其经营理念,于是客户关系管理被引入企业业务处理流程中,力图通过其支持和简化与客户相关联的业务流程,并将企业注意力集中于满足客户的需求和提高客户满意度上。

目前,中小企业普遍面临的问题比较典型的有:

客户信息方面:如何让企业对分散的客户信息进行整合;如何通过各种渠道了解客户更多信息;用哪些方式,缩短企业对客户的响应时间,更敏锐的捕捉到客户的全面信息。如何避免了由于销售人员的流失,同时也常造成客户的流失的风险。

客户发展方面:如何制定合理的客户发展任务、如何合理安排接触计划有效的执行并按期完成;怎样实时跟踪企业与客户的联系进展;如何发展更多客户,方便地进行网上销售,增加销量提高企业利润[3]。

客户服务方面:如何及时了解客户对产品的看法;如何及时处理客户的问题;如何加强企业后期的客户服务;如何提高客户的满意度和忠诚度。

分析决策方面:如何对进行合理的绩效评估,激励员工更好的工作;如何进行有效的分析,把握市场新需求动态;如何对客户投诉信息和流失信息进行分析,为企业改进不良环节提供决策。

CRM为以上问题提供了比较好的解决方案,CRM系统作为新一代信息化系统,可以有效地提高企业的竞争力。通过运用CRM,企业对客户信息资源进行整合,实现客户资源共享,更有效地管理客户关系,建立客户与企业的沟通桥梁;通过运用CRM,制定有效的营销策略和销售任务计划和具体行动,发展和保持更多的客户,方便地进行网上销售,增加销量;通过运用CRM,从而为客户提供更快速、更周到的优质服务,能够使企业及时了解市场的变化,对市场迅速反映;通过运用CRM分析决策功能,可以帮助企业了解信息和数据背后蕴含的规律和逻辑关系,为企业的管理者提供科学、准确的决策依据。

总之,CRM系统作为新一代信息化系统,运用“以客户为中心”理念,最大限度的利用其与客户有关的资源,实现企业从市场营销到销售到最后的服务和技术支持的交义立体管理。

2.2系统需求分析

2.2.1系统功能需求分析

一个成功的系统设计离不开好的需求分析,需求分析处于系统设计开发的初期阶段,其直接影响到后面的设计。本文对企业的客户关系管理功能需求做了较全面的分析。功能需求分析主要包含以下几个方面:

1、高效的客户资源管理

全面高效地存储、维护和查询客户信息。客户资源是企业最重要得战略性资源,企业的一切经营活动、营销策略都是围绕“发现、保持和留住客户”。分散的客户信息、客户资料形成了对客户进行有效管理的屏障,导致企业对客户的状况把握不准,从而使企业的营销策略出现偏差;同时客户与企业的关系也变成了孤立的客户与个人的关系。因此,对客户资源进行统一管理十分重要。将与企业有业务关系或者有潜在关系的客户的信息收集起来,统一放到数据库中,对客户信息进行企业级共享。

完整的管理客户生命周期,准确的把握客户的生命周期,是企业在激烈的市场竞争中发展新客户,留住老客户,提高销售,增强效益的关键。通过建立信息化平台,使企业真正建立起以客户为中心的管理理念体系。

客户特征细分客户,满足客户购买的选择标准,实现客户利润率的最大化。通过市场细分和个性化服务来获得差异化的竞争优势成为企业经营战略的发展潮流,是以客户为中心的思想在企业竞争战略中的一种体现。根据客户细分市场,通过对细分市场的个性化服务提高客户满意度,更好的获得和保持客户。

企业与客户直接接触时的对象是联系人,联系人是销售过程的重要角色,是企业与客户沟通的纽带和桥梁,企业与客户之间往往具有固定的一个或多个联系人,通过掌握联系人信息,企业可以很方便的与客户之间进行联系。

客户流失信息方面的管理,根据对流失客户相关信息记录,总结分析流失原因,改善那些导致客户流失的环节,把流失客户重新转变为有效客户。

2、合理的客户发展管理

存储、维护和查询员工根据市场营销和销售任务及市场营销和销售任务而制定的客户发展任务、客户的接触计划,对计划执行进展的实时跟踪和对在线销售实时维护处理。

有效的客户发展管理能让员工根据公司或上级主管下达的市场营销和销售任务,制定客户发展任务;根据客户发展任务,制定阶段性的客户联系人接触计划,并根据客户联系人接触计划安排具体的营销和销售活动;同时实时跟踪、维护和处理在线销售信息。

3、周到的客户服务管理

客户服务要有效处理企业与客户的沟通信息,获取、处理和维护客户投诉、客户新需求和客户合同信息。客户是交易的主导者,客户决定购买的选择,高客户满意才能赢得客户,更好的获得和保持客户。

客户投诉管理是维护客户满意度的一项重要管理工作。客户新需求管理是保持客户、留住客户的一项重要管理手段,也是维护客户满意度的方法。有效的客户合同管理可以帮助企业更好的例行合同,提高客户满意度。

4、全面的分析决策管理

开发的系统要有分析功能,通过分析功能可以帮助企业了解信息和数据背后蕴含的规律和逻辑关系,为企业的管理者提供科学、准确的决策依据。

分析功能可以更好地增加企业对客户新需求等的研究分析,把握市场新需求动态,保持住老客户,发展新客户;通过对客户投诉信息和客户流失信息分析计算,可以指导企业进行相应方面改善,减少客户投诉和客户流失,提高客户满意度和忠诚度。

2.2.2系统特性需求分析

由于本系统是企业级的应用,具有涉及资源众多、事务密集、数据量大、用户数多和要有较强的安全性等特点。所以,在设计系统时,要充分考虑到系统承受高负荷负载的能力,系统连续使用的承受力,解决系统瓶颈问题的能力。为了提高系统性能需要采

取如下的措施:

1、需要拥有存储海量数据库的能力

由于本系统是B/S结构,一个服务器要为多个用户服务,服务器和客户端之间需要传递大量数据,这就可能造成网络不同程度上的拥塞,减少网络中的数据流量无论是在降低系统负载还是解决系统瓶颈问题都起到了非常重要的作用。为了减少网络中数据的流量,采用了如下的措施:

(1)显示Web页面方面,尽量避免在一个页面上一次显示很多信息。在页面上显示很多的信息就意味着服务器要给客户端一次传递很多信息,为了避免网络拥塞,对检索出的上百条记录要进行分页显示。

(2)利用缓存机制提高数据访问性能和效率。在Web应用程序中,大量从数据库中提取出来的要被重复使用的数据一般不会频繁改变。针对这种频繁访问数据库势必降低数据访问性能的情况,利用缓存机制将数据在内存中缓存起来,以减少频繁访问数据库的次数,从而提高数据访问性能和效率。

2、系统响应时间要满足用户需求

由于本系统是Web应用系统,系统的延迟是必须避免的。为了降低用户的等待时间,就要提高程序的执行效率,而其中对等待时间影响最大的程序段就是对数据库查询语句。为了解决这一问题在SQL语句尤其是Select语句的编写上提出了一些规范,同时,在进行数据库的查询时,采用了存储过程以提高对数据库操作的执行速度。

3、系统需要具有较高的系统稳定性

系统的稳定性是指系统的一些边缘故障。比如系统运行一直很好,只是偶尔出现一些奇怪的问题,但是找不到原因,经过重启或者重装之后就恢复正常,这就在考验系统的稳定性。从系统本身来说,不会无缘无故地出现问题,出现问题一定是在某个方面有缺陷,而且问题往往是出在设计上。如果要从设计角度去保障系统的稳定性就需要设计人员充分的考虑系统各个模块之间的关系,减少耦合度,使问题隔离起来。模块内部也是一样,最大的问题就出在内存的使用上,不过这就是编码的问题了。总之,稳定的系统需要专业的经验丰富的设计人员,合理的划分系统,详细设计做到足够细,避免在开发阶段出现问题。

4、系统需要具有较高的系统可靠性

系统可靠性是指系统在规定的硬件平台支撑环境条件下,在规定时间范围内,依据系统功能需求或规格说明准确完成任务的能力。为保证系统的可靠性,需要对系统进行测试,尽可能找出系统中存在的问题,保证系统在投入使用后具有较高的可靠性。

2.2.3系统的实现方案

客户关系管理系统的结构设计,目前存在两种较为流行的模式:Client/Server(客户端/服务器)模式和Browser/Server(浏览器/服务器)模式。然而三层的B/S体系结构具有许多传统C/S体系结构不具备的优点,而且又紧密的结合了Internet技术,是技术发展的大势所趋,它把应用系统带入了一个崭新的发展时代。

ASP. NET是微软公司推出的一种Internet编程技术,它采用效率较高的、面向对象的方法来创建动态Web应用程序。它最大的优点除了编译执行速度快外,还有页面和代码分离的编写方式,再加上.NET库提供的支持事件的各种Web控件,使得采用https://www.doczj.com/doc/c018413559.html,编写Web程序比起以前的网页编写方式可谓是一场革命[4]。

https://www.doczj.com/doc/c018413559.html,可以使用.NET平台快速方便的部署三层结构。https://www.doczj.com/doc/c018413559.html,革命性的变化是在Web页面中使用基于事件的处理,可以指定处理的后台代码文件,可以使用C # ,VB ,J # 作为后台代码语言。.NET中可以方便地实现组件的装配,后台代码通过命名控件可以方便地使用自己定义的组件。表示层放在ASPX页面中,数据库操作和逻辑层用类来实现,这样就很方便地实现了三层结构。“三层结构”指的是逻辑上的三层,而非物理上的三层结构。

第一层表示层,即Web浏览器。

在表示层中包含系统的显示逻辑,位于客户端。其任务是由Web浏览器向网络上的某一Web服务器提出服务请求,Web服务器对用户身份进行验证后用HTTP协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在Web浏览器上。

第二层功能层,由具有应用程序扩展功能的Web服务器实现。

在功能层中包含系统的事务处理逻辑,位于Web服务器端。其任务是接受用户的请求,首先需要执行相应的扩展应用程序与数据库进行连接,通过SQL等方式向数据库服务器提出数据处理申请,然后等数据库服务器将数据处理的结果提交给Web服务器,再由Web服务器传送回客户端。

第三层数据层:由数据库服务器实现。

在数据层中包含系统的数据处理逻辑,位于数据库服务器端。其任务是接受Web服务器对数据库操纵的请求,实现对数据库查询、修改、更新等功能,把运行结果提交给Web服务器。

基于对客户关系管理模式的现状和需求分析,设计开发的客户关系管理系统要有适用范围广、异构和开放性强、平台技术稳定的特点,特别是适合网上处理的需要。考虑企业的实际需求,因此,本CRM系统设计成三层架构模式,以B/S结构方式来对外部系统提供Web服务,以此来满足不同用户的分布访问。B/S结构具有分布性特点,可以随时随地地进行业务处理。系统中用户工作界面是采用Web浏览器来实现,能实现不同用户,从不同地点以不同接入方式访问和操作数据库。该系统采用Microsoft SQL Server 2000 作为数据库服务器,Microsoft Visual Studio .NET 2008作为开发平台。使用其中的https://www.doczj.com/doc/c018413559.html, 和C#语言进行Web 应用程序的开发。系统采用https://www.doczj.com/doc/c018413559.html, 作为数据访问基础,该系统可运行在Windows2000/2003/XP操作系统上。系统的整体结构如图2.1所示。

图2.1 系统的整体结构

2.3系统功能模块设计

2.3.1 系统总体设计

根据需求分析,本系统的主要设计目标是实现方便、快捷、准确的跟踪、维护和管理企业客户信息和客户事务处理,并进行相关方面的分析,以客户为中心优化管理业务流程,帮助企业提高客户关系管理水平和效率。

在本文中确定以下几个子系统来构建一个CRM系统,包括客户资源管理子系统、客户发展管理子系统、客户服务管理子系统、分析决策管理子系统、基础配置管理子系统等。系统的整体结构图如图2.2 所示。

本系统是一套功能较全面、操作简便、实用的信息管理系统。它主要任务是实现对企业的客户资源信息、客户发展信息和客户服务信息等进行管理进行管理、维护并进行分析。它比较全面的实现了企业客户关系管理的功能,体现了以客户为中心的思想。

CRM客户关系管理

站内新闻在

线

图2.2 系统的整体功能结构图

第三章数据库技术应用

数据库设计是建立数据库及其应用系统的基础,是信息系统开发和建设中的核心技术之一。具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求。

3.1数据库设计的方法

由于信息结构复杂,应用环境多样,在相当长的一段时间内数据库设计主要采用手工试凑法。使用这种方法与设计人员的经验和水平有直接关系,数据库设计成为一种技艺而不是工程技术,缺乏科学理论和工程方法的支持,工程的质量难以保证,常常是数据库运行一段时间后又不同程度地发现各种问题,增加了系统维护的代价。人们经过努力探索,提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,提出了各种设计准则和规程,都属于规范设计法。

规范设计法中比较著名的有新奥尔良(New Orleans)方法。它将数据库设计分为四个阶段:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。其后又有L.R.Palmer等主张把数据库设计当成一步接一步的过程,并采用一些辅助手段实现每一过程。基于E-R模型的数据库设计方法,基于3NF(第三范式)的设计方法,基于抽象与规范的设计方法等,是在数据库设计的不同阶段上支持实现的具体技术和方法[5]。

3.2数据库设计的原则

1、表设计原则

数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但3NF通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF 标准的数据库的表设计原则是:某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据[5]。举例:存放客户信息及其相关联系人信息的3NF数据库就可能有两个表:UserInfo和LinkMan。LinkMan表不包含联系人关联客户的信息,但表内会存放一个键值UserID,该键指向UserInfo表里包含该客户信息的那一行。

2、字段设计原则

选择数字类型和文本类型尽量充足。在SQL中使用smallint 和tinyint 类型要特别小心。而ID类型的文本字段,比如CityID等等都应该设置得比一般想象更大[6]。举例:GradeID为2位数长。那你应该把数据库表字段的长度设为3或者4个字符长。但这额外占据的空间却无需将来重构整个数据库就可以实现数据库规模的增长了。

3.3数据库表设计

根据数据库设计方法和原则及在上一节中对要实现的CRM系统进行的功能模块设计,在此设计上进一步细化,根据字段设计原则,可以进行数据表设计。对数据库进行设计,涉及的数据表比较繁多,关系也比较复杂:有1对1的关系,比如客户等级信息表UserGrade和权值信息表Weight;有一对多的关系,比如客户信息表UserInfo和联系人信息表Linkman;有多对多的关系,比如客户信息表UserInfo和客户需求类别信息表Deman dType。其主要数据表关系如图3.1所示。

由于客户关系管理系统的数据表比较多,在这里我们以客户信息表UserInfo和联系人信息表LinkMan(如表3-1、3-2所示)为例来简要说明本系统数据库设计的特点。

表2-1主要记录客户的详细信息,如:客户名称、客户地址、主要联系人名称、客户电话、客户电子邮箱、客户备注以及客户流失原因分析等。客户信息表UserInfo以UserID 为主键,并通过CityID、GradeID、TypeID、StateID、LinkmanID、EmployeeID、ReasonID、ProductionID等外键与城市信息表City、客户等级信息表UserGrade、客户企业类型信息表UserType、客户状态信息表UserState、联系人信息表Linkman、员工信息表EmployeeInfo、客户投诉流失原因信息表Reason、产品信息表Production等建立关联,以便进行相应的信息录入查询编辑和分析计算等。

图3.1 主要数据表结构关系

表3-1 客户信息表

Key 字段英文名类型长度可为空说明

* UserID Int 4 N 客户ID

CityID Int 4 N 城市ID

GradeID Int 4 N 客户等级ID

TypeID Int 4 N 客户业务类型ID

StateID Int 4 N 客户状态ID

EmployeeID Int 4 员工ID

ReasonID Int 4 客户流失原因ID

ProductionID Int 4 使用产品

UserName V archar 40 客户名称

UserAddress V archar 200 客户地址

Linkman V archar 40 主要联系人名称

Phone1 V archar 20 电话1

Phone2 V archar 20 电话2

EMail V archar 40 电子邮箱

QQ V archar 20 QQ号码

MSN V archar 20 MSN号码

Fax1 V archar 20 传真1

Fax2 V archar 20 传真2

PeopleAmount Int 4 企业人数

AccountBank V archar 200 客户开户银行

AccountNum V archar 200 客户银行账号

TaxName V archar 200 客户开票名

LoseNote V archar 400 客户流失分析

DayTime Datetime 8 状态修改日期

Note V archar 400 备注

表3-2主要记录联系人的详细信息,如:联系人姓名、联系人性别、联系方式、联系人生日、联系人喜好以及联系人备注信息等。联系人信息表以LinkmanID为主键,并通过UserID外键与客户信息表UserInfo建立关系,以便进行相应的信息添加查询编辑等操作。

表3-2 联系人信息表

Key 字段名类型长度可为空说明

* LinkmanID Int 4 N 联系人ID

UserID Int 4 N 客户ID

LinkmanName V archar 20 N 联系人名称

LinkmanSex Bit 1 联系人性别

LinkmanPhone1 V archar 20 联系人电话1

LinkmanPhone2 V archar 20 联系人电话2

LinkmanAddress V archar 40 联系人地址

LinkmanQQ V archar 20 联系人QQ号码

LinkmanMSN V archar 20 联系人MSN号码

LinkmanEMail V archar 40 联系人电子邮箱

LinkmanBirthday Datetime 8 联系人生日

LinkmanLike V archar 400 联系人喜好

LinkmanNote V archar 400 备注

3.4 https://www.doczj.com/doc/c018413559.html,技术

https://www.doczj.com/doc/c018413559.html,是一组包括在Microsoft .NET 框架中的库,用于在.NET应用程序的各种数据存储之间通信[7]。https://www.doczj.com/doc/c018413559.html,库中包含了可与数据源连接、提交查询并处理结果的类,还可以将https://www.doczj.com/doc/c018413559.html,作为一种强壮、层次化的、断开连接的数据缓存来使用,以脱机处理数据。其中最主要的断开连接对象(数据集)可执行对数据排序、搜索、筛选、更改等操作。数据集还包含许多功能,填补了传统数据访问和XML开发之间的空白[12]。大多数基于Web的应用程序都需要访问数据库,而https://www.doczj.com/doc/c018413559.html,是专门针对Web设计的,并且考虑了伸缩性和无状态性[14]。下面通过深入分析https://www.doczj.com/doc/c018413559.html,的各种数据访问对象,来阐释https://www.doczj.com/doc/c018413559.html,数据访问模型的特点和运行机制。

https://www.doczj.com/doc/c018413559.html,是.NET框架类库的System.Data命名空间和它的子空间中提供的一组类。与以前ADO和OLEDB不同,https://www.doczj.com/doc/c018413559.html,从一开始就是为在Web的无连接世界中工作而设计的,并且很容易同XML集成,在关系数据和XML之间架起桥梁,简化了在它们之间移动数据的任务[20]。

https://www.doczj.com/doc/c018413559.html,适合于建立在Internet和Intranet上使用的高效多层数据库应用程序。连接的对象直接与数据库通信,以管理连接和事务,并可以从数据库检索数据和向数据库提交所做的更改。断开连接的对象,允许脱机处理数据。构成https://www.doczj.com/doc/c018413559.html,对象模型中断开部分的对象是不与连接的对象直接通信,也不与数据库直接通信,它通过DataAdapter

对象的Fill方法把数据从数据库中转入DataSet。同样,要把存储在DataSet中的更改提交给数据库,可以将DataSet传递给DataAdapter对象的Update方法。

相关主题
文本预览
相关文档 最新文档