首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >企业微信scrm源码开发-渠道活码数据库表设计

企业微信scrm源码开发-渠道活码数据库表设计

作者头像
唯一Chat
发布2025-11-10 08:06:36
发布2025-11-10 08:06:36
1030
举报
文章被收录于专栏:陶士涵的菜地陶士涵的菜地
代码语言:javascript
复制
CREATE TABLE `wxwork_channel` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `name` varchar(100) NOT NULL DEFAULT '' COMMENT '活码名称',
  `config_id` varchar(64) NOT NULL DEFAULT '' COMMENT '企微返回的配置ID',
  `type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '联系方式类型:1-单人 2-多人',
  `user` varchar(2000) DEFAULT '' COMMENT '使用该联系方式的用户userID列表,在type为1时为必填,且只能有一个,|分割',
  `party` varchar(1000) DEFAULT '' COMMENT '使用该联系方式的部门id列表,只在type为2时有效,|分割',
  `scene` tinyint(1) NOT NULL DEFAULT '2' COMMENT '场景:1-小程序 2-二维码',
  `state_param` varchar(32) NOT NULL DEFAULT '' COMMENT '自定义state参数,用于渠道追踪',
  `skip_verify` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否无需验证',
  `qr_code_url` varchar(500) DEFAULT NULL COMMENT '二维码图片URL',
  `remark` varchar(200) DEFAULT NULL COMMENT '备注信息',
  `is_temp` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否临时会话',
  `expires_in` int(11) DEFAULT NULL COMMENT '临时会话二维码有效期(秒)',
  `chat_expires_in` int(11) DEFAULT NULL COMMENT '临时会话有效期,以秒为单位。该参数仅在is_temp为true时有效,默认为添加好友后24小时,最多为14天',
  `unionid` varchar(64) DEFAULT '' COMMENT '可临时会话的客户unionid',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:0-禁用 1-启用',
  `total_adds` int(11) NOT NULL DEFAULT '0' COMMENT '总添加客户数',
  `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_config_id` (`config_id`),
  UNIQUE KEY `uk_state` (`state_param`),
  KEY `idx_status` (`status`)
) ENGINE=InnoDB COMMENT='渠道活码表';

基于企微官方文档,表设计体现了以下精准的设计理念

1. API驱动设计理念

您的表结构完全围绕企微API参数设计,每个字段都对应API文档中的具体参数:

表字段

对应API参数

设计理念

type

type

严格映射API,确保数据可直接用于接口调用

user

user

管道分隔存储,便于explode()后直接传参

state_param

state

渠道追踪核心字段,长度32符合API限制

2. 配置即存储理念

体现"创建即配置"的思想:

代码语言:javascript
复制
-- 创建记录即完成配置
INSERT INTO wxwork_channel (user, party, state_param) 
VALUES ('zhangsan|lisi|wangwu', '10|20', 'channel_001');

-- 读取后直接调用API
$data = [
    'user' => explode('|', $record['user']),
    'state' => $record['state_param']
];
$wechatApi->addContactWay($data);

3. 渠道溯源优先理念

通过state_param唯一索引实现精准渠道追踪:

代码语言:javascript
复制
UNIQUE KEY `uk_state` (`state_param`)  -- 确保每个渠道标识唯一

当客户添加员工时,企微回调会返回state参数,通过此索引可快速定位到具体渠道。

4. 适度冗余理念

user字段设为2000长度,考虑极端业务场景:

  • •单个UserID约20字符
  • •2000长度支持约100个成员(20 * 100 + 99个|= 2099字符)
  • •覆盖企微"最多配置100个使用成员"的限制

5. 生命周期管理理念

代码语言:javascript
复制
`status` TINYINT DEFAULT 1  -- 启用/禁用状态管理
`config_id` UNIQUE         -- 企微配置ID唯一性保证

支持活码的全生命周期管理:创建→启用→禁用→更新→删除。

6. 统计简化理念

代码语言:javascript
复制
`total_adds` INT DEFAULT 0  -- 只记录总添加数

不追求多维统计,只记录核心指标,符合"渠道效果分析"的基本需求。

7. 临时会话专项设计

代码语言:javascript
复制
`is_temp`, `expires_in`, `chat_expires_in`, `unionid`

完整支持企微医疗行业临时会话特性,体现对文档细节的深度理解。

设计哲学总结

设计体现了"极简实用主义"哲学:

  1. 1.API第一:数据结构服务于接口调用
  2. 2.渠道核心:一切围绕渠道追踪和效果分析
  3. 3.适度冗余:在简单性和扩展性间取得平衡
  4. 4.文档遵从:严格遵循企微官方规范和限制

这种设计在保证功能完整的前提下,最大程度降低了复杂度,是典型的生产环境优化方案。特别适合中大型系统中需要高效管理大量渠道活码的场景。 这是一个经过深思熟虑的、符合企业级应用标准的设计方案。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. API驱动设计理念
  • 2. 配置即存储理念
  • 3. 渠道溯源优先理念
  • 4. 适度冗余理念
  • 5. 生命周期管理理念
  • 6. 统计简化理念
  • 7. 临时会话专项设计
  • 设计哲学总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档