Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >『线索管理』表创建

『线索管理』表创建

原创
作者头像
程序员NEO
修改于 2024-01-30 01:37:19
修改于 2024-01-30 01:37:19
5251
举报

一、前言

本篇文章是『TienChin』项目实战系列文章的第 53 篇,主要介绍 TienChin『线索管理』表创建

通过上篇文章的介绍,已经将课程管理的基本功能实现了,那么从这篇文章开始,我们就来实现『线索管理』的功能。本篇文章主要介绍『线索管理』的表创建。

二、配置权限

首先呢,先配置一下权限,如下图点击新增:

查询权限:

新增权限:

删除权限:

修改权限:

跟进权限:

分配权限:

三、表创建

1. 线索管理表

首先呢,我们先来看看线索管理的表的各个字段:

  • clue_id:线索编号
  • name:客户姓名
  • channel_id:渠道 ID
  • activity_id:活动 ID
  • gender:性别,0 男,1 女
  • age:客户年龄
  • weixin:客户微信
  • qq:客户QQ
  • phone:客户电话
  • level:客户意向等级,1. 近期报名,2. 打算报名,考虑中,3. 了解一下 4. 打酱油
  • subject:私教课程
  • status:线索状态,1. 已分配 2. 跟进中 3. 回收 4. 伪线索
  • fail_count:伪线索失败次数,最大 3 次
  • next_time:下次跟进时间
  • end_time:线索失效时间
  • transfer:线索是否需要转派
  • remark:备注
  • create_time:创建时间
  • update_time:更新时间
  • create_by:创建人
  • update_by:更新人
  • del_flag:删除标志(0代表存在 2代表删除)

我这里单独解释一下其中几个字段的作用:

  • 渠道 ID

渠道 ID,也就是我们前面所做的渠道管理的 ID,意思就是说,这条线索是通过哪个渠道来的。

  • 活动ID

活动 ID,也就是我们前面所做的活动管理的 ID,意思就是说,这条线索是通过哪个活动来的,我举几个例子,比如下班了他走在路上,看到了我们的广告牌,然后就扫码关注了我们的公众号,这个时候,他就是通过广告牌这个渠道来的,然后他就是通过我们的公众号这个活动来的,所以这个时候,我们就可以通过这个活动 ID 来查询到他是通过哪个活动来的。

  • 线索失效时间

这个字段的意思就是说,这条线索的有效期,比如说,这条线索再开始是属于张三的,在公司当中其实是有一个保护期的,如果在这个失效时间结束之前你拿下了这个客户那么这个业绩就是属于张三的,如果张三在这个失效时间结束之前没有拿下这个客户,那么这个线索就会流转到其他的业务专员那里,张三没有拿下也有可能是张三的能力不行,也有可能是客户的意向不够。

  • 下次跟进时间

如果这条线索是一条有用的线索那么就需要记录一下下次跟进的时间点,业务背景就是,业务专员今天和客户打电话了聊的很愉快,客户也打算学习,两个人都达成一致的意见,但是客户说他现在还有点事情,需要过几天再来学习,这个时候就需要记录一下下次跟进的时间点,这样业务专员就可以在这个时间点再次和客户进行沟通了。

  • 伪线索失败次数

在实际的公司业务中,一条线索的收集其实是有成本的,所以对于伪线索我特意设了一个失败次数,为什么是 3 次呢,假设业务专员打了 3 次电话,都是空号,又或者是打了 3 次电话,客户都是没意向,那么这条线索就不会再出现在线索管理的列表当中了。

  • 线索状态

线索状态这个字段的意图就是在将来我们这个线索过来的之后,是需要分配到具体的一个市场专员去处理的,所以说分配之后这个字段就是来记录这个专员的处理情况,这里我要特意说一下回收与伪线索,回收就是说这个线索的处理专员跟进失败了就会流转到回收,然后就是在说一下伪线索,伪线索指的是用户没有意向,代表着这条线索是无用的。

  • 客户意向等级

通过字典管理来维护,这个字段的含义就是说,某个人来你这学习有多大的可能性会来。

  • 私教课程

这个课程是需要反复进行跟踪的,在之前的文章中,我也说过,对于健身房来说,报名费其实是不重要的,并不多,盈利大头其实是私教卖课对于健身房来说就很重要,这个我们有另外的表,到时候进行关联一下即可。

  • 性别

做成码表字典管理中进行维护。

如上关于字段我多唠了几句关于业务上面的内容,这样大家就能够更好的理解这个字段的意思,那么接下来我们就来创建这个表,建表语句如下:

代码语言:sql
AI代码解释
复制
CREATE TABLE `tienchin_clue` (
  `clue_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '线索编号',
  `name` varchar(50) DEFAULT NULL COMMENT '客户姓名',
  `channel_id` bigint(20) DEFAULT NULL COMMENT '渠道ID',
  `activity_id` bigint(20) DEFAULT NULL COMMENT '活动ID',
  `gender` tinyint(1) DEFAULT NULL COMMENT '性别,0 男,1 女',
  `age` int(11) DEFAULT NULL COMMENT '客户年龄',
  `weixin` varchar(50) DEFAULT NULL COMMENT '客户微信',
  `qq` varchar(16) DEFAULT NULL COMMENT '客户QQ',
  `phone` varchar(16) DEFAULT NULL COMMENT '客户电话',
  `level` tinyint(1) DEFAULT NULL COMMENT '客户意向等级,1. 近期报名,2. 打算报名,考虑中,3. 了解一下 4. 打酱油',
  `subject` bigint(20) DEFAULT NULL COMMENT '私教课程',
  `status` tinyint(1) DEFAULT NULL COMMENT '线索状态,1. 已分配 2. 跟进中 3. 回收 4. 伪线索',
  `fail_count` tinyint(1) DEFAULT NULL COMMENT '伪线索失败次数,最大 3 次',
  `next_time` datetime DEFAULT NULL COMMENT '下次跟进时间',
  `end_time` datetime DEFAULT NULL COMMENT '线索失效时间',
  `transfer` tinyint(1) DEFAULT NULL COMMENT '线索是否需要转派',
  `remark` varchar(255) DEFAULT NULL COMMENT '备注',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
  `update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
  `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
  PRIMARY KEY (`clue_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='线索管理';

2. 线索跟进记录表

线索管理表创建好了之后呢,还没有完毕,在线索管理当中有一个 next_time,代表着这个线索还需要持续跟进,直到转换为商机,那么跟进呢,不能光就单纯的进行跟进,得要有一个跟进记录,所以线索这个模块呢,跟其他的模块不一样,除了这个线索表之外呢还得要有一张线索跟进记录表,表的字段如下:

  • record_id:跟进记录ID,主键,唯一标识
  • type:跟进记录类型,1. 线索 2. 商机
  • assign_id:线索或者商机的 ID
  • info:跟进记录内容
  • create_time:创建时间
  • create_by:创建人
  • update_time:更新时间
  • update_by:更新人
  • del_flag:删除标志(0代表存在 2代表删除)

字段解释:

  • type,当中有一个商机,因为后续还有商机板块所以这里就提前预设了一下
  • assign_id:意思就是说,这条跟进记录是属于哪个线索或者商机的,这个字段是一个外键,关联线索或者商机的 ID,一对多的关系,一条线索或者商机可以有多条跟进记录

建表语句如下:

代码语言:sql
AI代码解释
复制
CREATE TABLE `tienchin_clue_record` (
  `record_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '跟进记录ID,主键,唯一标识',
  `type` tinyint(1) DEFAULT NULL COMMENT '跟进记录类型,1. 线索 2. 商机',
  `assign_id` bigint(20) DEFAULT NULL COMMENT '线索或者商机的 ID',
  `info` varchar(255) DEFAULT NULL COMMENT '跟进记录内容',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
  `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
  PRIMARY KEY (`record_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='线索跟进记录';

3. 线索分配表

建完了上述两张表之后,这里呢还有一张表,线索表有了,线索跟进记录表也有了,但是线索是不是要分配给具体的业务专员去处理呢,所以这里还需要一张线索分配表,其实商机也是需要分配的,不管是线索还是商机只要是需要分配我都记录到这张表当中,然后呢,有可能线索分配给了某个专员,假如这个专员没有搞定,我还要分配给其它人来处理所以呢,线索管理与线索分配表的关系是一对多的关系,一条线索可以分配给多个专员来处理,那么线索分配表的字段如下:

  • a_id:分配 ID
  • type:跟进记录类型,1. 线索 2. 商机
  • assign_id:线索或者商机的 ID
  • user_id:线索或商机所属的用户 ID
  • user_name:线索或商机所属的用户名称
  • user_dept_id:线索或商机所属的用户部门 ID
  • latest:是否是当前最新分配人
  • create_time:创建时间
  • create_by:创建人
  • update_time:更新时间
  • update_by:更新人
  • del_flag:删除标志(0代表存在 2代表删除)

字段解释:

  • latest

这个字段是一个布尔值,一条线索分别先分给李四 -> 张三 -> 王五,对于王五来说,他就是这条线索的最新分配人,lastest 就是 true,对于张三李四来说,他们就不是这条线索的最新分配人,lastest 就是 false。

建表语句如下:

代码语言:sql
AI代码解释
复制
CREATE TABLE `tienchin_clue_assign` (
  `a_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '分配 ID',
  `type` tinyint(1) DEFAULT NULL COMMENT '跟进记录类型,1. 线索 2. 商机',
  `assign_id` bigint(20) DEFAULT NULL COMMENT '线索或者商机的 ID',
  `user_id` bigint(20) DEFAULT NULL COMMENT '线索或商机所属的用户 ID',
  `user_name` varchar(50) DEFAULT NULL COMMENT '线索或商机所属的用户名称',
  `user_dept_id` bigint(20) DEFAULT NULL COMMENT '线索或商机所属的用户部门 ID',
  `latest` tinyint(1) DEFAULT NULL COMMENT '是否是当前最新分配人',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
  `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
  PRIMARY KEY (`a_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='线索分配表';

这篇文章的内容就介绍到这里,如果您觉得本文对您有所帮助,欢迎点赞、收藏或分享,您的支持是我创作的最大动力!

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
太专业了吧,唐老师
太专业了吧,唐老师
回复回复1举报
推荐阅读
编辑精选文章
换一批
这篇文章把后管系统的权限控制设计讲清楚了
在常用的后台管理系统中,通常都会有权限系统设计,以用于给对应人员分配不同权限,控制其对后管系统中的某些菜单、按钮以及列表数据的可见性。
wayn
2024/02/12
9690
这篇文章把后管系统的权限控制设计讲清楚了
SpringSecurity集成JWT实现后端认证授权保姆级教程-数据准备篇
视频教程: 上一篇:SpringSecurity集成JWT实现后端认证授权保姆级教程-环境搭建篇 下一篇:SpringSecurity集成JWT实现后端认证授权保姆级教程-工具类准备篇 🤞接下来就是一步步来进行操作:先创建需要的数据库,再创建实体类,把所有准备都做好🤞
知识浅谈
2024/01/08
2760
SpringSecurity集成JWT实现后端认证授权保姆级教程-数据准备篇
深入理解RBAC权限系统
最近,一位朋友在面试中被问及如何设计一个权限系统。我们注意到目前许多后台管理系统(包括一些热门的如若依快速开发平台)都采用了RBAC访问控制策略。该策略通过将权限授予角色,然后将角色分配给用户,从而实现对系统资源的访问控制。今天,我们将详细解释基于RBAC的权限系统。
修己xj
2023/12/13
2.9K0
深入理解RBAC权限系统
smart-water表设计方案
用户11288958
2025/08/11
610
Vue+SpringBoot打造超市商品管理系统(附源码文档)
随着社会的发展,人们的生活水平不断地提高,超市遍布城市各个社区,它们繁荣了社会经济,也便利了人们的生活,是人们生活中不可缺少的一部份。顾客需要非常方便的找到自己想要的商品,超巿商品库存、摆放、价格方面的工作,需要一个稳定、可靠的管理系统帮助寻找管理商品的位置,因此开发超市商品管理系统具有较好的应用价值。
Designer 小郑
2023/08/01
3.5K1
Vue+SpringBoot打造超市商品管理系统(附源码文档)
电商设计手册之基础商品信息
第一篇我们主要看看一个入门的电商平台(B2C)如何去构建自己的基础商品信息,其实这个事情很简单,想想我们的现实生活,商家摆放商品到货架,客户从货架挑选商品,客户把挑选好的商品放入购物车(篮),最后客户去收银台结账。
大愚
2019/03/01
1.3K0
电商设计手册之基础商品信息
TienChin-课程管理-数据表创建
程序员NEO
2023/10/12
1800
基于JavaWeb的超市商品管理系统
基于Vue+SpringBoot+MySQL的超市商品管理系统,超市区域模块、超市货架模块、商品类型模块、商品档案模块,分为用户网页端和管理后台,基于角色的访问控制,可将权限精确到按钮级别,还有一些简单的图表分析,项目编号S001。
用户10855598
2023/11/24
9270
基于JavaWeb的超市商品管理系统
在线问题反馈模块实战(一):梳理业务需求并创建数据库表
       接下来的这几期,bug菌想跟大家分享一下自己昨天刚接到一个临时的需求,热乎着呢,想分享一下自己是如何面对临时需求并制定整个开发周期,其中包括从梳理业务到创建业务表再到实现业务逻辑形成闭环再到与前端对接,其中会穿插一些业务拓展及功能性拓展,这一条龙流程在线与大家一起见证,分享给刚入门的小伙伴,希望对你们有所帮助。
bug菌
2023/05/27
3960
在线问题反馈模块实战(一):梳理业务需求并创建数据库表
Data truncation: Out of range value for column ‘estimate_score‘
建表时设置的estimate_score 位数不够,在出现了需要存入的数据 100.5 的时候,整数位置为3位,而数据库设置的decimal(4,2) 4表示总共的数据为长度;2表示小数位2位,那么整体下来整数位只有2位,100超过整数位最大长度而存入异常,根据此处业务需求将总长度改为6位即可
六月的雨在Tencent
2024/03/28
2290
Spring Boot + Spring Cloud 实现权限管理系统 后端篇(二):数据库设计
系统主要包含用户(sys_user)、组织(sys_dept)、角色(sys_role)、菜单(sys_menu)、角色组织(sys_role_dept)、角色菜单(sys_role_menu)、用户Token(sys_user_token)、系统日志(sys_log)等表。
朝雨忆轻尘
2019/06/19
1.1K0
[Skr-Shop]通用抽奖工具之系统设计
上篇文章《SkrShop通用抽奖工具之需求分析》我们已经通过一些常见的抽奖场景,得到了符合这些抽奖场景的抽奖工具五要素:
大愚
2020/02/11
1.1K0
[Skr-Shop]通用抽奖工具之系统设计
TienChin 渠道管理-表创建
在若依当中,有个槽点,就是数据库当中的删除标识状态一般 0 是 false,1 是 true,在若依当中反而 0 是 true,1 是 false。
程序员NEO
2023/10/12
2260
程序员:你如何写可重复执行的SQL语句?
小张注意到,在实际的项目开发场景中,很多开发人员只关注编写SQL脚本来满足功能需求,而忽略了脚本的可重复执行性。
李福春
2025/07/01
540
程序员:你如何写可重复执行的SQL语句?
权限想要细化到按钮,怎么做?
松哥最近正在录制 TienChin 项目视频~采用 Spring Boot+Vue3 技术栈,里边会涉及到各种好玩的技术,小伙伴们来和松哥一起做一个完成率超 90% 的项目,戳戳戳这里-->TienChin 项目配套视频来啦。
江南一点雨
2022/06/23
9720
权限想要细化到按钮,怎么做?
SpringSecurity 授权
例如一个学校图书馆的管理系统,如果是普通学生登录就能看到借书还书相关的功能,不可能让他看到并且去使用添加书籍信息,删除书籍信息等功能。但是如果是一个图书馆管理员的账号登录了,应该就能看到并使用添加书籍信息,删除书籍信息等功能。
用户9615083
2022/12/30
1.6K0
SpringSecurity 授权
【新年版】JimuReport 积木报表 v1.9.4发布,免费报表、打印设计和视化设计
JEECG
2025/02/20
2410
jeecgboot积木报表(jimuReport)Oracle切换
执行Oracle SQL(网友分享),或使用MySQL的SQL代码创建库后,使用DBeaver或navicat等工具转换为Oracle库(官方最新)
用户1637609
2021/11/04
1.2K0
结合swagger,实现shiro权限资源的导入功能
做shiro权限控制时,shiro的权限RequiresPermissions都写在Controller的方法内,如果做动态的权限管理时,每个shiro的权限资源都要手动录入,太麻烦了。 有没有一种比较简单的方法,能实现权限资源的自动录入,而不需要一条条的录入呢? 答:有的,应用启动时,会扫描各个Controller的方法,获取该结果,即可,另外权限资源的注解名称,可以通过获取swagger的注解来获取.
星痕
2018/09/12
9270
lnmp - RBAC方案设计与实现
实践的是一套企业内部使用后台OA管理系统,对这套系统设计的RBAC(Role-Based Access Control,基于角色的访问控制),RBAC 方案旨在通过将后台用户与角色进行关联,再将角色与权限进行关联,实现对系统资源的灵活、高效和安全的访问控制。
stark张宇
2024/10/11
2000
lnmp - RBAC方案设计与实现
推荐阅读
相关推荐
这篇文章把后管系统的权限控制设计讲清楚了
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档