智慧教务系统
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

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字段需要规范化处理
  • 文件管理: 图片等文件类型消息需要配套的文件存储方案
  • 消息限制: 设置合理的消息长度和发送频率限制
  • 数据清理: 定期清理过期的已删除消息数据
  • 备份策略: 重要消息需要建立备份和恢复机制
  • 性能监控: 监控消息系统的性能和响应时间
  • 用户体验: 优化消息的展示和交互体验
  • 离线消息: 处理用户离线时的消息存储和推送
  • 消息统计: 建立消息发送和接收的统计分析
  • 异常处理: 处理消息发送失败和网络异常情况