gofly.v1kf.com
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
-
完善的时间戳记录创建、更新和删除时间
-
此设计在保持原有核心功能的基础上,增强了安全性、多商家支持能力和客服管理灵活性,更适合现代多商家在线客服系统的需求。