基于 PHP+apache+MySql实现(Web)客户关系管理系统

news/2025/3/22 3:12:51/

小型 CRM 系统的开发

1 绪论

1.1 系统开发的背景

随着市场开放,各个企业之间的竞争逐渐加剧,并且也从独立的企业与企业之间的竞争发展成为了一个个群集之间的竞争。在这些群集中,不同的企业扮演着不同的角色,比如有原料供应商、制造商、分销机构、零售商等。在企业与企业之间需要进行大量的信息交互、流程管理和对各种异常情况的处理,前者主要是针对一些动态的数据信息即供应链管理,后者则是更多的是一些静态资料的管理即合作伙伴信息管理。对于普通的中小企业来说,资金和人力都很有限,因此对于定制比较复杂的供应链管理来说是不现实的。中小企业更倾向于首先把散乱的资料、协议有效的管理起来,在一定程度上有效的提高工作效率和企业信息化建设的进程。因此,在这样一种市场需求下,一款通用性强、功能实用、易于上手,面向全行业中小企业的企业管理系统就产生了。企业的客户资源才会是最重要的资源。在 21 世纪,客户管理得到了网络技术的充分支持。此时客户也有条件要求企业尊重他们,并对服务的质量和及时性等方面提出更高要求。网络时代到来,使得顾客可以有更大的选择权,市场由原来的供方主导转变为顾客主导。企业在处理与客户的关系时,被动地处理顾客的抱怨、解答顾客的问题,顾客服务并未成为整体服务产品的核心。在这种情况下,企业越来越感觉到没有信息技术支持的客户关系管理系统(CRM)力不从心。于是 CRM 系统便应运而生。并将成为 21 世纪企业竞争获胜的通行证 。何谓客户关系管理,客户关系管理是企业为赢得顾客的高度满意.建立起与客户的长期良好关系所开展的工作。本项目将详细展示该系统的开发与实现。

1.2 系统开发的意义

客户管理系统主要是将客户信息管理、人物管理、客户交费、投诉管理、查询报表等多功能于一身的客户管理软件,操作简单方便,界面美观大方,能满足企业进行客户管理的需求,客户管理系统通过准确、智能、高效、创新的营销策略,协助企业不断提高销售额、提升客户忠诚度

2 系统分析

2.1 需求分析

根据现代一般小型企业的实际业务需要和客户需求,通过调研总结,得出现代公司的 crm 的业务需求如下:

  1. 为了方便公司对 crm 的后期管理以及维护,设置系统管理员。管理员拥有查询、新增、修改和删除用户(一般管理员)的权限。管理员还可以对自己的账号密码进行修改或者选择退出系统。
  2. 为了更加精确的管理客户,进行客户评估,开发新客户,系统将客户的购买的产品、数量、金额、交易完成情况等信息进行记录整合分析,还收录客户的售后评价等反馈信息,便于员工系统地分析评估,改善服务。
  3. 系统能根据客户的消费采购产名称、数量、金额等信息,进行企业的业务收支情况的记录分析,便于公司的财务管理。

2.2 可行性分析

2.2.1 管理可行性

本系统是基于 B/S 架构进行开发的,用户只需在电脑或手机上通过浏览器访问网址就可以使用本系统。系统的操作比较简单,对于本系统的用户来说,只需要在有网络的情况下,就可以登陆本系统进行操作,不受时空的限制,极大的方便了工作业务。

2.2.2 经济可行性

本系统开发前期需要配置有服务器和相关网络设备需要一部分支出,同时在开发和后期的运营维护方面也需要相应的支出,但是本系统比较小型,使用的是开源技术,服务器等方面的要求也不高,技术上也不难,建设和后期的运营成本都不高。相对而言,系统在投入使用后,将给企业的管控方面带来极大的便利,优化企业内部管理和客户管理,提高企业的日常管理效率。

2.2.3 技术可行性

本系统是基于 B/S 架构进行开发,主要的技术是前端应用程序的开发和后台 PHP 和数据库 MySQL 的开发,这类型结构的系统在市面上大规模存在,因此技术上很成熟,遇到问题也有相应的解决方法。所以说,本系统在技术上可靠性很高。

2.2.4 操作可行性

本系统拥有个性化的操作界面,相应的功能结构显示非常清晰。信息输入页面通过输入框的方式进行输入,而且也有人性化的提示操作,员工可以很快上手操作系统。一般人只要对手机和电脑上网比较熟悉,就很容易的操作本系统了。另外在技术维护的日常操作上,并不需要非常专业的人员,技术人员只需进行简单的维护即可。因此,无论是使用还是技术维护方面的操作都是可行的。

2.3 业务流程分析

2.3.1 业务流程描述

业务流程分析,可以帮助我们了解公司业务的详细流程,查找并解决系统调查中的疏忽和问题,修改和删除原来的系统中不合理的内容,并在新系统中促进业务流程的优化,业务流程图(TFD)是将系统的各项业务以流程图的形式体现出来,是业务流程分析的主要工具,业务流程图的主要符号说明如图 1 所示。

图 1 业务流程图的主要符号说明

系统管理在进入 CRM 系统后,可以查看、新增、修改和删除系统的普通用户的信息;系统用户接收到客户信息、客户反馈信息和采购计划信息后,进入系统,可以对客户信息、客户反馈信息和采购计划信息进行增加、删除、修改和查看;用户可以根据客户交易情况,对客户关系进行判断和确定;用户可以查询、新增、修改和删除客户信息、客户关系信息、客户反馈信息、营销信息、采购计划和收支记录等信息。

2.3.2 业务流程图

通过以上的分析,可以得出 CRM 系统的业务流程图如图 2 所示。

2.4 数据流程分析

2.4.1 数据流程描述

数据流程图(DFD)是系统结构化分析的重要工具,数据流程分析包括信息流的分析、传输、存储、处理等内容。CRM 的数据流程分析是经过分层的数据流程图来完成的。数据流程图一般是描述信息在程序中的传输与处理活动。表示方法为自上而下逐步精细和结构化。数据流程图的主要符号如图 3 所示

图 3 数据流程图的主要符号说明

2.4.2 数据流程图

通过以上的分析,得到 CRM 的数据流程图如图 4~5 所示。

图 4 顶层数据流程图

图 5 一级细化数据流程图

2.5 数据字典

数据字典包括数据结构、数据元素、数据存储、数据流、外部实体和处理过程。数据字典对数据流图各项基本要素的内容特征做了更加详细的描述与定义说明,对数据流图起到了补充作用。

  1. 数据项举例

数据项即是数据元素,作为数据最小的单位。数据项举例如图 5 所示

图 5

  1. 数据结构举例

有若干数据项组成的数据组成称为数据结构。他描述了某些数据项的关系,如图 6 所示

图 6

  1. 数据流举例

数据流表明系统中数据的流向,该数据可以是数据项或数据流,在数据字典中对数据流的定义包括数据流的名称、编号、说明、来源、去向、组成、流通量及高峰流量等,如图 7 所示

图 7

4)处理逻辑举例

处理逻辑只对数据流图的各个处理逻辑进行进一步的解释如图 8 所示

图 8

  1. 数据存储举例

数据存储是保存数据结构的地方,它描述数据的逻辑存储结构,而不需要物理内容,如图 9 所示

图 9

  1. 外部实体举例

数据字典的外部实体如图 10 所示

图 10

3 系统设计

3.1 系统总体设计

3.1.1 系统功能结构图

图 11 系统功能结构图

3.1.2 系统物理配置方案设计

根据 CRM 的业务功能的要求,确定系统的运行环境包括:

  1. 处理器:四核以上的服务器专用 CPU
  2. 操作系统:Window 2008 Server
  3. 系统内存:16GB
  4. 硬盘:2T
  5. 显示器:24 寸 IPS 显示器
  6. 电源:配备 UPS 应急电源

3.2 系统详细设计

3.2.1 数据库设计

(1)概念结构设计

在给定的运行条件下,满足用户的使用需要,能够有效的分析、存储和管理数据,包含数据操作和信息管理的要求,设计了数据库的逻辑模式和物理结构,搭建相应的数据库与应用系统。在设计数据库时,以本系统为出发点,绘制出反映系统需求的E-R图。E-R图包括实体、联系和属性。E-R图的主要符号如图12所示

图 12 E-R 图主要符号说明

1) 用户实体属性图

图 13

2) 客户关系实体属性图

图 14

3) 客户实体属性图

图 15

4) 客户反馈实体属性图

图 16

5) 营销信息实体属性图

图 17

6) 财务管理实体属性图

图 18

7) 购计划实体属性图

图 19

8) 全局 E-R 图

图 20

(2)逻辑结构设计

概念模型想关系模型转换,根据上述实体属性的图,设计关系模式如下:

  1. 用户信息(用户 ID,密码,员工 ID)
  2. 客户关系(关系 ID,客户 ID,员工 ID,关系程度,上次交易时间)
  3. 客户信息(客户 ID,客户姓名,性别,客户等级,地址,邮箱,电话)
  4. 客户反馈(反馈 ID,反馈客户姓名,反馈类型,反馈内容,时间,联系方式)
  5. 营销信息(营销 ID,客户 ID,销售员 ID,营销产品,数量,总价,状态,时间)
  6. 财务管理(收支编号,客户 ID,业务名称,收支人 ID,金额,时间)
  7. 采购计划(计划 ID,商品名称,数量,采购人 ID,时间,状态)

(3)物理结构设计

本系统采用 MySQL 数据库实现了数据库的表结构设计,根据逻辑设计的关系模型得到的数据表如下。

表 1 用户信息表(user)

字段名

字段类型

字段长度

是否主键

允许空

描述

account

Varchar

20

用户账号

password

Varchar

20

密码

user_id

Varchar

20

员工 ID

表 2 客户关系表(relation)

字段名

字段类型

字段长度

是否主键

允许空

描述

relation_id

Varchar

20

关系 ID

customer_id

Varchar

20

客户 ID

user_id

Varchar

20

跟进人 ID

degree

Varchar

10

关系程度

Last_time

Date

上次交易时间

表 3 客户信息表(customer)

字段名

字段类型

字段长度

是否主键

允许空

描述

customer_id

Varchar

20

客户 ID

name

Varchar

10

客户姓名

Sex

Varchar

10

性别

Level

Varchar

10

客户等级

Addr

Varchar

50

客户地址

Email

Varchar

50

邮箱

tel

Varchar

20

电话

表 4 客户反馈表(feedback)

字段名

字段类型

字段长度

是否主键

允许空

描述

Feedback_id

Varchar

20

反馈 ID

name

Varchar

20

反馈人名称

type

Varchar

20

反馈类型

content

Varchar

10

内容

time

Date

反馈时间

表 5 营销信息表(sale)

字段名

字段类型

字段长度

是否主键

允许空

描述

sale_id

Varchar

20

营销 ID

costomer_id

Varchar

20

客户 ID

emp_id

Varchar

20

负责人 ID

product

Varchar

10

产品

Num

Int

20

数量

Total_price

Float

30

总价

status

Varchar

20

销售状态

Time

date

时间

表 6 财务管理表(account)

字段名

字段类型

字段长度

是否主键

允许空

描述

account_id

Varchar

20

收支编号

costomer_id

Varchar

20

客户 ID

Business

Varchar

20

业务名称

Operator_id

Varchar

20

收支人 ID

amount

Float

20

金额

Time

date

时间

表 7 采购计划表(purchas_plan)

字段名

字段类型

字段长度

是否主键

允许空

描述

plan_id

Varchar

20

计划编号

Plan_name

Varchar

20

计划名称

Num

Varchar

20

数量

Operator_id

Varchar

20

采购员 ID

Time

date

时间

status

Varchar

10

状态

3.2.2 代码设计

代码设计是在系统的调查与分析的基础上,给系统内需要代码化的实体给出编码结构和规则,代码设计的原则有唯一性 、 合理性 、 可扩充性(千年虫问题)、简单性 、适用性 、规范性 、系统性。下面是具体的用例说明客户信息的编号使用特定的 KH 编码开头加上注册当天的日期和 000~999 的编码格式组成

类型:字符型

图 21

3.2.3 输出设计

输出是指由本系统产生的结果,本系统采用 Excel 报表输出的方法输出系统的产生信息,输出格式如下表所示:

表 8 客户信息输出表

客户编号

客户姓名

性别

客户等级

地址

邮箱

电话

KH20180202001

钟打野

1

湛江

000@139.commailto:000@139.com

10086

KH20180202002

钟大野

1

湛江

001@139.commailto:001@139.com

10010

3.2.4 输入设计

输入设计是指录入前期的准准备以及数据的不断规范化的整体过程。我们在输入的设计中,应该坚持输入效率的不断提高和输入错误率的降低,输入方式如下图所示

客户编号:

客户姓名:

性 别:

客户等级:

1

2

3

客户地址:

邮 箱:

电 话:

图 22 客户信息输入设计

4 系统功能的实现

4.1 开发技术

本系统采用的开发技术主要是 PHP+apache+mysql 的组合,这是一个经典的技术组合形式,行业上不少系统都是采用这种技术组合,它具有稳定性高,风险小,技术实现简单,技术支持框架多等优点。这种技术的系统具有很好的兼容性和扩展性,需要的物理硬件配置比较低,很适合小型的系统开发使用。系统采用的是 B/S 结构,只需有浏览器的设备就可以使用,使用的门槛很低。

4.2 系统登陆界面

(1)描述:进入客户关系管理系统之前需要登陆,需要用系统内存在的账号密码来登陆。

(2)登陆界面如下图所示:

图 23 登陆界面

(3)在输入正确的用户名和密码之后,系统正确获取并跳转界面进管理系统内部,就可以进行管理工作了

4.3 系统功能设计

4.3.1 主界面功能

(1)描述:系统主页面的左侧为导航设计,点击相应的项目可以打开具体的下拉菜单还能直接查看最新通知,记事本功能。

(2)系统主界面的效果图如下所示

图 24 系统主界面

4.3.2 插入数据功能

(1) 分别输入用户名、密码以及对应的用户 ID,即可成功添加用户

(2) 程序的效果图如下图所示:

图 25 插入数据界面

4.3.3 查看数据功能

(1) 点击左侧的导航菜单后,如果有相应的权限的话,系统将自动读取数据库的数据,并以表格的形式进行展示在页面右侧。

(2) 程序的效果图如下图所示:

图 26 查看数据界面

4.3.4 修改数据功能

(1) 点击数据表格对应的行,即可对那一行数据进行修改

(2) 程序的效果图如下图所示:

图 27 修改数据界面

5 系统测试

5.1 系统测试的目的

系统测试的主要目的是为了进一步检测和验证系统技术实现的科学性和可靠性,尽可能排查出系统运行中的纰漏,并且对系统分析、系统设计和系统实现进行评估,不断提高软件系统的安全性和稳定性。

通过调试发现系统存在的错误,并定位其位置,研究出解决的方案,并且进行改正。进行黑盒测试,根据系统说明书进行测试,检验现有的系统能否符合且达到原本设计的要求,进行相应的改善。

5.2 单元测试

5.2.1 登陆界面测试

(1) 当账号密码中有一个为空或两个都为空时,点击登陆后,不进行页面跳转,光标自动定位到输入框,为空的输入框变化颜色以提醒用户输入,如图所示:

图 28

5.2.2 管理员权限测试

(1) 管理员账号与一般账号的权限不一样,普通用户就没有对用户表的相关操作的权限

图 29

6 总结与展望

6.1 总结

在这次的系统设计过程中,我深刻的认识到了自己大学里所学知识有限,学好一门计算机编程语言,尤其是把他应用到开发中去,显得十分重要。也让我进一步感受到了同学和老师的帮助。

6.2 展望

本系统依托客户关系管理系统实现了数字化的有效管理,实现系统的开发,由于个人能力有限,该系统仅仅是完成了基础功能的部份,界面设计还有待提升。在接下来的日子里,我需要更加努力的查找学学习相关的知识,提高自己的开发水平,继续完善本系统,让系统更加友好、易于使用,功能丰富。


http://www.ppmy.cn/news/1581039.html

相关文章

ffmpeg库视频硬解码使用流程

FFmpeg 的硬解码(Hardware Decoding)通过调用 GPU 或专用硬件的编解码能力实现,能显著降低 CPU 占用率。 ‌一、FFmpeg 支持的硬件解码类型‌ FFmpeg 原生支持多种硬件加速类型,具体由 AVHWDeviceType 定义,包括&…

Python助力区块链互通——跨链桥接的实现与实践

Python助力区块链互通——跨链桥接的实现与实践 区块链技术的繁荣发展带来了巨大的生态创新,但也因各链之间的割裂局面限制了它们的潜力。例如,你或许想在以太坊上使用来自比特币的资产,却因两条链不互通而不得不求助于中心化交易所。要打破“链间壁垒”,跨链桥接(Cross-…

STM32配套程序接线图

1 工程模板 2 LED闪烁 3LED流水灯 4蜂鸣器 5按键控制LED 6光敏传感器控制蜂鸣器 7OLED显示屏 8对射式红外传感器计次 9旋转编码器计次 10 定时器定时中断 11定时器外部时钟 12PWM驱动LED呼吸灯 13 PWM驱动舵机 14 PWM驱动直流电机 15输入捕获模式测频率 16PWMI模式测频率占空…

JavaScript语法入门

目录 1. 变量声明 2. 数据类型 3. 运算符 4. 分支语句 5. 循环语句 6. 字符串 7. 数组 8. 对象 9. 原型与原型链 10. 常用内置对象 JavaScript 是一种轻量级、解释型的编程语言,广泛应用于网页开发中,用于增强网页的交互性。以下是 JavaScript…

deepseek连续对话与API调用机制

在调用DeepSeek等大模型进行连续对话时,是否需要每次上传系统提示和对话历史取决于API的设计机制。 一、API调用机制解析 无状态服务原则 DeepSeek的API基于无状态架构设计,每次请求视为独立会话。若需维持对话连续性,必须由客户端主动管理并…

如何利用爬虫获取1688商品详情API接口:从入门到实战

一、技术原理分析 API定位方法 使用Chrome开发者工具(F12)的Network面板筛选XHR/Fetch请求(通常返回JSON数据)通过关键词搜索(如"itemDetail")观察请求参数中的商品ID(offerId&…

Python学习第十九天

Django-分页 后端分页 Django提供了Paginator类来实现后端分页。Paginator类可以将一个查询集(QuerySet)分成多个页面,每个页面包含指定数量的对象。 from django.shortcuts import render, redirect, get_object_or_404 from .models impo…

观察者模式详解:用 Qt 信号与槽机制深入理解

引言 你是否曾遇到这样的需求:一个对象的状态发生变化后,希望通知其他对象进行相应的更新?比如: 新闻订阅系统:当新闻发布后,所有订阅者都会收到通知。股票行情推送:股价变化时,所…