多商家在线客服系统 - 客服用户表设计方案

gofly.v1kf.com

vx:  llike620

设计分析与建议

针对多商家在线客服系统的客服用户表设计,我分析了您提供的原始设计并提出以下优化建议:

优化要点

  1. ​安全增强​​:

    • 密码存储改用更安全的bcrypt算法(增加salt字段)

    • 增加登录失败次数限制和锁定机制

  2. ​多商家支持强化​​:

    • 明确商家关联关系(tenant_id替代uuid

    • 增加商家角色权限字段

  3. ​客服专属功能完善​​:

    • 增加客服技能组/标签

    • 增加最大接待量限制

    • 细化在线状态(在线/忙碌/小休/离线)

  4. ​字段规范化​​:

    • 修正拼写错误(avatoravatar

    • 时间字段统一使用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='多商家客服用户表';

设计说明

  1. ​多租户支持​​:

    • 使用tenant_id明确区分不同商家客服

    • 用户名唯一性约束增加商家维度(username+tenant_id)

  2. ​安全体系​​:

    • 密码采用salt+加密存储,可兼容多种加密算法

    • 登录失败次数和锁定机制防止暴力破解

  3. ​客服能力管理​​:

    • skill_groupstags实现客服技能标记

    • max_acceptcurrent_accept控制接待负载

  4. ​状态精细化​​:

    • 扩展online_status为4种状态

    • 单独status控制账号可用性

  5. ​操作审计​​:

    • 记录最后登录时间和IP

    • 完善的时间戳记录创建、更新和删除时间

此设计在保持原有核心功能的基础上,增强了安全性、多商家支持能力和客服管理灵活性,更适合现代多商家在线客服系统的需求。

posted @ 2025-09-22 23:26  唯一客服系统开发笔记  阅读(15)  评论(0)    收藏  举报