# school_chat_friends 表文档 ## 表概述 **表名**: school_chat_friends **功能**: 聊天好友关系管理表,用于管理员工与学生客户资源之间的聊天关系和消息状态 ## 字段说明 ``` Field Type Collation Null Key Default Extra Privileges Comment id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references personnel_id int NULL NO NULL select,insert,update,references 员工人力资源表id customer_resources_id int NULL NO NULL select,insert,update,references 学生资源表id unread_count_personnel int NULL NO 0 select,insert,update,references 员工未读消息数量|默认0 unread_count_customer_resources int NULL NO 0 select,insert,update,references 学生端未读消息数量|默认0 created_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED select,insert,update,references 添加时间 updated_at timestamp NULL YES CURRENT_TIMESTAMP DEFAULT_GENERATED on update CURRENT_TIMESTAMP select,insert,update,references 更新时间 delete_time int NULL NO 0 select,insert,update,references 逻辑删除时间 ``` ## 功能用途 ### 主要功能 - **好友关系管理**: 建立和维护员工与学生客户之间的聊天关系 - **消息状态跟踪**: 分别跟踪员工端和学生端的未读消息数量 - **聊天会话管理**: 管理一对一的聊天会话和对话历史 - **消息计数器**: 实时更新双方的未读消息统计 - **关系状态维护**: 维护聊天关系的有效性和活跃状态 - **消息提醒**: 支持基于未读消息数量的提醒功能 - **会话列表**: 为聊天应用提供好友列表和会话列表 - **消息同步**: 确保双方消息状态的同步更新 - **关系删除**: 支持聊天关系的逻辑删除和恢复 ### 业务场景 - **客户咨询**: 学生客户向销售或客服人员进行课程咨询 - **学习指导**: 教师与学员进行一对一的学习指导和答疑 - **课程服务**: 班主任与学员进行课程安排和学习跟进 - **售后服务**: 客服人员处理学员的投诉和建议 - **招生沟通**: 招生顾问与潜在客户进行招生宣传和答疑 - **家长沟通**: 教师与学员家长进行学习情况沟通 - **紧急通知**: 学校向学员发送紧急通知和重要信息 - **作业辅导**: 教师为学员提供课后作业指导 - **考试答疑**: 考前为学员提供专门的答疑服务 ## 关联关系 ### 主要关联表 - `school_personnel`: 人员表(员工信息) - `school_customer_resources`: 客户资源表(学生客户信息) - `school_chat_messages`: 聊天消息表(具体的聊天消息) - `school_member`: 会员表(正式学员信息) - `school_sys_user`: 系统用户表(用户登录信息) - `school_course`: 课程表(相关课程信息) - `school_class`: 班级表(班级关联信息) - `school_campus`: 校区表(所属校区) ### 关联说明 - **员工关联**: personnel_id关联到school_personnel表的员工信息 - **客户关联**: customer_resources_id关联到客户资源表 - **消息关联**: 与聊天消息表形成一对多关系 - **用户关联**: 通过人员和客户资源关联到系统用户 - **业务关联**: 可能关联到具体的课程、班级等业务对象 - **校区关联**: 通过人员和客户资源间接关联到校区 - **时间关联**: 记录关系建立和更新的时间信息 ## 索引建议 - **主键索引**: id(已存在) - **外键索引**: - personnel_id(员工查询) - customer_resources_id(客户查询) - **复合索引**: - (personnel_id, customer_resources_id)(唯一好友关系) - (personnel_id, delete_time)(员工有效关系查询) - (customer_resources_id, delete_time)(客户有效关系查询) - **时间索引**: - created_at(创建时间查询) - updated_at(更新时间查询) - **状态索引**: delete_time(逻辑删除查询) - **消息统计索引**: - unread_count_personnel(员工未读消息) - unread_count_customer_resources(客户未读消息) ## 注意事项 - **唯一性约束**: 确保同一员工与同一客户只能有一个有效的聊天关系 - **消息计数准确性**: 保证未读消息计数的准确性和实时性 - **逻辑删除**: 使用delete_time字段进行逻辑删除,保留历史记录 - **权限控制**: 严格控制聊天关系的建立和访问权限 - **数据同步**: 确保消息状态与实际聊天记录的同步 - **性能优化**: 大量聊天关系时需要优化查询性能 - **消息清理**: 定期清理过期的聊天关系和消息记录 - **隐私保护**: 保护聊天关系和消息内容的隐私安全 - **并发控制**: 处理消息计数更新时的并发问题 - **关系恢复**: 支持已删除聊天关系的恢复功能 - **监控告警**: 监控异常的聊天行为和消息量 - **备份策略**: 重要的聊天关系数据需要定期备份 - **消息推送**: 基于未读消息数量进行消息推送 - **会话管理**: 合理管理长期不活跃的聊天会话 - **数据迁移**: 支持聊天关系数据的迁移和同步