You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
6.6 KiB
6.6 KiB
school_chat_messages 表文档
表概述
表名: school_chat_messages
功能: 聊天消息管理表,用于记录和管理系统内部的即时通讯消息,支持员工与学员、员工之间的多种类型消息交流,包括文本、图片、系统通知等,为教育机构提供完整的内部沟通平台
字段说明
Field Type Collation Null Key Default Extra Privileges Comment
id int unsigned NULL NO PRI NULL auto_increment select,insert,update,references
from_type enum('personnel','customer','system') utf8mb4_general_ci NO NULL select,insert,update,references 发送者类型|personnel=员工,customer=学生(客户)system(系统消息)
from_id int NULL NO NULL select,insert,update,references 发送者ID(员工/学生)根据from_type进行判断为presonnel时,必然是员工id,为customer时必然是学生id
to_id int NULL NO MUL NULL select,insert,update,references 接收者ID(员工/学生)根据from_type进行判断为presonnel时,必然是员工id,为customer时必然是学生id
to_type enum('personnel','customer','member') utf8mb4_general_ci NO customer select,insert,update,references 接收者类型
friend_id int NULL NO NULL select,insert,update,references 关联chat_friends表id
message_type enum('text','img','system','notification','homework','feedback','reminder','order','student_courses','person_course_schedule') utf8mb4_general_ci YES text select,insert,update,references
content text utf8mb4_general_ci NO NULL select,insert,update,references 文本内容(JSON 格式扩展字段)
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 逻辑删除时间
is_read tinyint(1) NULL YES 0 select,insert,update,references 是否已读 0-未读 1-已读
read_time timestamp NULL YES NULL select,insert,update,references 已读时间
title varchar(255) utf8mb4_general_ci YES select,insert,update,references 消息标题
business_id int NULL YES NULL select,insert,update,references 关联业务ID
business_type varchar(50) utf8mb4_general_ci YES select,insert,update,references 业务类型
功能用途
主要功能
- 多类型消息支持: 支持文本、图片、系统通知、作业、反馈等多种消息类型
- 用户身份管理: 区分员工、学员、系统等不同发送者和接收者类型
- 好友关系维护: 通过friend_id关联聊天好友关系
- 消息状态跟踪: 跟踪消息的已读状态和阅读时间
- 业务消息关联: 支持与具体业务对象的关联,如课程、订单等
- 软删除机制: 支持消息的逻辑删除,保护数据完整性
- 消息标题管理: 支持消息标题,便于消息分类和展示
- 时间戳记录: 完整记录消息的创建和更新时间
业务场景
- 师生沟通: 教师与学员之间的课程咨询和学习交流
- 作业布置: 教师向学员布置和批改作业
- 学习反馈: 学员向教师反馈学习情况和问题
- 课程提醒: 系统自动发送课程安排和变更通知
- 订单通知: 支付成功、课程购买等订单相关通知
- 系统公告: 重要系统公告和通知的推送
- 客服咨询: 学员与客服人员的在线咨询
- 内部协作: 员工之间的工作协作和信息交流
- 家校沟通: 教师与家长的沟通交流
- 紧急通知: 紧急情况下的即时通知和提醒
关联关系
主要关联表
- school_chat_friends: 聊天好友表,通过friend_id关联好友关系
- school_personnel: 人员表,当from_type或to_type为personnel时关联
- school_student: 学员表,当from_type或to_type为customer时关联
- school_member: 会员表,当to_type为member时关联
- school_course: 课程表,当business_type为课程相关时关联
- school_pay: 支付表,当business_type为订单相关时关联
- school_person_course_schedule: 个人课程安排表,当message_type为person_course_schedule时关联
- school_student_courses: 学员课程表,当message_type为student_courses时关联
关联说明
- 通过from_id和to_id建立消息发送者和接收者的关联
- 通过friend_id关联具体的好友关系记录
- 通过business_id和business_type关联具体的业务对象
- 支持多种用户类型之间的消息交流
- 消息类型决定了消息的展示方式和处理逻辑
索引建议
-- 主键索引(自动创建)
PRIMARY KEY (id)
-- 接收者索引(用于查询接收的消息)
INDEX idx_to_id (to_id)
-- 好友关系索引(用于查询好友间的消息)
INDEX idx_friend_id (friend_id)
-- 发送者索引(用于查询发送的消息)
INDEX idx_from_id (from_id)
-- 已读状态索引(用于查询未读消息)
INDEX idx_is_read (is_read)
-- 创建时间索引(用于按时间排序)
INDEX idx_created_at (created_at)
-- 删除时间索引(用于软删除查询)
INDEX idx_delete_time (delete_time)
-- 消息类型索引(用于按类型查询)
INDEX idx_message_type (message_type)
-- 业务关联索引(用于查询业务相关消息)
INDEX idx_business (business_type, business_id)
-- 复合索引(接收者和已读状态)
INDEX idx_to_read (to_id, is_read)
-- 复合索引(好友和时间)
INDEX idx_friend_time (friend_id, created_at)
-- 复合索引(发送者类型和ID)
INDEX idx_from_type_id (from_type, from_id)
-- 复合索引(接收者类型和ID)
INDEX idx_to_type_id (to_type, to_id)
注意事项
- 消息安全: 确保消息内容的安全性,防止敏感信息泄露
- 权限控制: 严格控制消息的发送和接收权限
- 内容审核: 建立消息内容的审核机制,防止不当内容
- 存储优化: 大量消息数据需要考虑存储优化和归档策略
- 实时性: 确保消息的实时推送和接收
- 消息格式: JSON格式的content字段需要规范化处理
- 文件管理: 图片等文件类型消息需要配套的文件存储方案
- 消息限制: 设置合理的消息长度和发送频率限制
- 数据清理: 定期清理过期的已删除消息数据
- 备份策略: 重要消息需要建立备份和恢复机制
- 性能监控: 监控消息系统的性能和响应时间
- 用户体验: 优化消息的展示和交互体验
- 离线消息: 处理用户离线时的消息存储和推送
- 消息统计: 建立消息发送和接收的统计分析
- 异常处理: 处理消息发送失败和网络异常情况