多商家在线客服系统 - 客服用户表设计方案
vx: llike620
设计分析与建议
针对多商家在线客服系统的客服用户表设计,我分析了您提供的原始设计并提出以下优化建议:
优化要点
-
安全增强:
-
密码存储改用更安全的
bcrypt
算法(增加salt
字段) -
增加登录失败次数限制和锁定机制
-
-
多商家支持强化:
-
明确商家关联关系(
tenant_id
替代uuid
) -
增加商家角色权限字段
-
-
客服专属功能完善:
-
增加客服技能组/标签
-
增加最大接待量限制
-
细化在线状态(在线/忙碌/小休/离线)
-
-
字段规范化:
-
修正拼写错误(
avator
→avatar
) -
时间字段统一使用
datetime
类型
-
优化后的设计语句
CREATE TABLE `customer_service` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tenant_id` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '所属商家ID',
`pid` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '父级ID(用于子账号)',
`username` varchar(125) NOT NULL DEFAULT '' COMMENT '登录用户名',
`password` varchar(255) NOT NULL DEFAULT '' COMMENT '加密密码',
`salt` varchar(50) NOT NULL DEFAULT '' COMMENT '密码盐值',
`nickname` varchar(50) NOT NULL DEFAULT '' COMMENT '显示名称',
`avatar` varchar(500) NOT NULL DEFAULT '' COMMENT '头像URL',
`email` varchar(125) NOT NULL DEFAULT '' COMMENT '绑定邮箱',
`mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '绑定手机',
`role_type` tinyint(4) NOT NULL DEFAULT 1 COMMENT '角色(1普通客服2主管3管理员)',
`skill_groups` varchar(255) NOT NULL DEFAULT '' COMMENT '技能组(逗号分隔)',
`tags` varchar(255) NOT NULL DEFAULT '' COMMENT '标签(逗号分隔)',
`max_accept` int(10) unsigned NOT NULL DEFAULT 10 COMMENT '最大接待量',
`current_accept` int(10) unsigned NOT NULL DEFAULT 0 COMMENT '当前接待量',
`online_status` tinyint(4) NOT NULL DEFAULT 2 COMMENT '在线状态(1在线2忙碌3小休4离线)',
`status` tinyint(4) NOT NULL DEFAULT 1 COMMENT '状态(0禁用1正常)',
`login_fail_count` tinyint(4) NOT NULL DEFAULT 0 COMMENT '连续登录失败次数',
`lock_time` datetime DEFAULT NULL COMMENT '锁定时间',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`last_login_ip` varchar(50) NOT NULL DEFAULT '' COMMENT '最后登录IP',
`expire_time` datetime DEFAULT NULL COMMENT '账号过期时间',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` datetime DEFAULT NULL COMMENT '更新时间',
`deleted_at` datetime DEFAULT NULL COMMENT '删除时间',
PRIMARY KEY (`id`),
UNIQUE KEY `idx_username_tenant` (`username`, `tenant_id`) COMMENT '商家下用户名唯一',
KEY `idx_tenant` (`tenant_id`) COMMENT '商家索引',
KEY `idx_mobile` (`mobile`) COMMENT '手机索引',
KEY `idx_email` (`email`) COMMENT '邮箱索引',
KEY `idx_pid` (`pid`) COMMENT '父账号索引',
KEY `idx_status` (`status`) COMMENT '状态索引',
KEY `idx_online` (`online_status`) COMMENT '在线状态索引',
KEY `idx_accept` (`current_accept`) COMMENT '接待量索引'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='多商家客服用户表';
设计说明
-
多租户支持:
-
使用
tenant_id
明确区分不同商家客服 -
用户名唯一性约束增加商家维度(
username
+tenant_id
)
-
-
安全体系:
-
密码采用
salt
+加密存储,可兼容多种加密算法 -
登录失败次数和锁定机制防止暴力破解
-
-
客服能力管理:
-
skill_groups
和tags
实现客服技能标记 -
max_accept
和current_accept
控制接待负载
-
-
状态精细化:
-
扩展
online_status
为4种状态 -
单独
status
控制账号可用性
-
-
操作审计:
-
记录最后登录时间和IP
-
完善的时间戳记录创建、更新和删除时间
-
此设计在保持原有核心功能的基础上,增强了安全性、多商家支持能力和客服管理灵活性,更适合现代多商家在线客服系统的需求。
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网