客户关系管理系统概要设计
客户关系平台的设计,是为了使客户关系公司实现线上服务销售,以补地面销售的不足,更好的做好双线并行,互补互助。所以,在设计上要考虑超前性和可扩张性,以有为日后系统升级预留端口。
客户关系平台采用B/S模式开发,采取网站的形式,这样就省却在每一台电脑上都装客户端的麻烦以及考虑到后期维护的方便性,只需要在一台主机上装有系统,别的电脑只需联网到这台主机就可以在IE里打开系统,很方便。
客户关系系统功能分析
客户关系管理系统设计思想
1 页面模块化
把页面中一些常用的部分集成为模块,例如页面的头部、尾部和数据库连接文件,这样设计新的页面时如果有重复出现的部分,只需要拿现成的模块来组装就可以了。
在本系统中,将数据库连接存入conndb.ASP.NET文件中,当需要数据库连接时,只要用Include语句包含此文件即可。
另外系统页面结构定义在一个模板文件template.ASP.NET中,在这个文件中可以看到系统中基本的页面组成结构。只要在此模板页面中的特定位置加上实现某种功能的页面代码,此页就会成为一个具有特定功能的 完整的页面。例如ProductDetail.ASP.NET文件是在template.ASP.NET文件中加入了下面一行代码而具备了显示图书详细信息的功能。
call ShowProduct(RealSruing(Request.QUERYstring("id")))
2 注重安全性
1)不要把Sql 2000数据库放在网站内部
不要把Sql 2000数据库文件放在网站结构内部,这样,当恶意人士获取数据库路径后,就可以轻易获取该数据库,进而肆意更改数据库内容。比较好的做法是,使用SQL 2000数据库或Oracle数据库,或者将Sql 2000数据库文件放在网站虚拟目录以外。
2)过滤字符串中的单引号
当用字符串来组织SQL语句时,最重要的一个问题就是过滤字符串中的单引号,因为SQL语句中的字符是以单引号为分界的,例如下面的语句,在执行时就会出错:
strName="I'm Hacker"
strSQL="SELECT*FROM User WHERE[Name]='"&strName&"'"
conn.Execute strSQL
这样,在实际执行过程中最终SQL语句如下:
SELECT*FROM User WHERE [Name]=‘I'm Hacker'
由于在“I‘m Hacker”中包含一个单引号“’”,这样系统会认为在字母“I”后面已经结束,但后面仍有字符,于是就会提示语法错误。因此需要将单引号过滤掉,或者替换为两个单引号(在SQL语法中用两个单引号表示一个单引号),只要使用VBScript中的Replace函数就可以达到目的。
3 代码的复用
本系统中使用了很好的代码复用机制,即在开发中尽量使用本系统中已经使用过的代码,以及使用以前项目积累的代码,如分页、检查E-mail的函数和上传类。
客户关系管理系统功能模块划分
根据系统功能分析,可以画出系统的功能模块图,从客户界面,管理界面分别对功能模块图加以描述。
客户关系管理系统数据库设计
“数据库”就是为了实现一定的目的按某种规则组织起来的“数据”的“集合”。它由一个称为数据库管理系统的软件进行管理。数据的存取方式独立于使用它的应用程序。
数据库的主要特征:
数据共享
数据具有最小冗余度
数据的完整性
数据的安全性
数据的独立性
数据库结构的设计是软件开发的首要条件,设计较好、全面的数据库结构,对于软件开发来说是成功的基石,数据库结构设计不全面,会严重影响软件系统的开发利用率与进程。
客户关系管理系统数据库需求分析
用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
通过系统功能分析,针对一般的客户关系服务系统,总结出如下的需求信息:
1)用户分为普通用户和管理员用户。
2)普通用户无需要登录就可以查看客户关系信息和资讯
3)管理员可进行所有后台操作权限。
关于定单列表与定单详细信息可以这样理解:因为用户一次可以购买多种产品。则对每种产品(即每一款型号的客户关系)生成一条定单详细信息记录。然后多个这样的定单详细信息组成一个定单列表。每一个定单列表才与一个用户对应,在发货时以定单列表为单位,也即用户在操作时所看到的“定单”。
经过系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下的数据项和数据结构:
1)用户信息,包括数据项:帐号,密码,权限,注册时间。
2)新闻,包括数据项:新闻名称,新闻内容,添加时间等。
3)客户关系,包括数据项:客户关系编号,客户关系名称,客户关系说明,价格,图片等。