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

5.1 KiB

school_student_favorites 表文档

表概述

表名: school_student_favorites
功能: 学员收藏表,用于管理学员对各类内容的收藏功能

字段说明

Field	Type	Collation	Null	Key	Default	Extra	Privileges	Comment
id	int	NULL	NO	PRI	NULL	auto_increment	select,insert,update,references	
student_id	int	NULL	NO	MUL	NULL		select,insert,update,references	学员ID
target_type	varchar(50)	utf8mb4_0900_ai_ci	NO	MUL	NULL		select,insert,update,references	收藏类型:article-文章
target_id	int	NULL	NO		NULL		select,insert,update,references	目标ID
created_at	timestamp	NULL	NO		CURRENT_TIMESTAMP	DEFAULT_GENERATED	select,insert,update,references	收藏时间

功能用途

主要功能

  • 收藏管理: 管理学员对各类内容的收藏和取消收藏操作
  • 多类型支持: 支持文章(article)等多种类型内容的收藏
  • 学员关联: 通过student_id关联具体的学员用户
  • 目标定位: 通过target_type和target_id精确定位收藏的具体内容
  • 时间记录: 记录收藏的具体时间,便于排序和统计
  • 收藏列表: 为学员提供个人收藏内容的列表展示
  • 快速访问: 为学员提供快速访问收藏内容的入口
  • 收藏统计: 统计学员的收藏行为和偏好分析
  • 内容推荐: 基于收藏数据为学员推荐相关内容

业务场景

  • 文章收藏: 学员收藏感兴趣的教学文章、学习资料等
  • 课程收藏: 学员收藏心仪的课程,便于后续报名学习
  • 视频收藏: 学员收藏教学视频、录播课程等多媒体内容
  • 资料收藏: 学员收藏学习资料、课件、习题等教学资源
  • 活动收藏: 学员收藏感兴趣的校园活动、讲座等
  • 教师收藏: 学员收藏喜欢的任课教师,关注其课程动态
  • 个人中心: 在个人中心展示学员的收藏内容列表
  • 学习计划: 基于收藏内容制定个性化学习计划
  • 内容推荐: 根据收藏偏好推荐相似的学习内容
  • 社交分享: 学员可以分享自己的收藏内容给其他同学

关联关系

主要关联表

  • school_student: 学员表,通过student_id关联学员信息
  • school_article: 文章表,当target_type为article时关联
  • school_course: 课程表,当target_type为course时关联
  • school_video: 视频表,当target_type为video时关联
  • school_personnel: 教师表,当target_type为teacher时关联
  • school_activity: 活动表,当target_type为activity时关联
  • school_resource: 资源表,当target_type为resource时关联
  • school_member: 会员表,通过学员关联到会员信息

关联说明

  • student_id 关联 school_student.id,标识收藏的学员
  • target_typetarget_id 组合标识收藏的具体内容
  • 文章收藏: target_type='article', target_id关联school_article.id
  • 课程收藏: target_type='course', target_id关联school_course.id
  • 视频收藏: target_type='video', target_id关联school_video.id
  • 教师收藏: target_type='teacher', target_id关联school_personnel.id
  • 多态关联: 通过target_type实现对不同类型内容的统一收藏管理
  • 学员关联: 与学员表关联,获取收藏者的详细信息
  • 内容关联: 根据类型动态关联到具体的内容表

索引建议

-- 主键索引(自动创建)
PRIMARY KEY (id)

-- 学员ID索引(用于查询学员的收藏列表)
INDEX idx_student_id (student_id)

-- 目标类型索引(用于按类型查询收藏)
INDEX idx_target_type (target_type)

-- 创建时间索引(用于按时间排序)
INDEX idx_created_at (created_at)

-- 复合索引(用于查询学员的特定类型收藏)
INDEX idx_student_target_type (student_id, target_type)

-- 复合索引(用于查询特定内容的收藏情况)
INDEX idx_target_type_id (target_type, target_id)

-- 复合索引(用于防重复收藏)
UNIQUE INDEX idx_student_target_unique (student_id, target_type, target_id)

-- 复合索引(用于收藏时间排序)
INDEX idx_student_created (student_id, created_at DESC)

注意事项

  • 重复收藏: 需要防止学员重复收藏同一内容,建议添加唯一索引
  • 数据一致性: 删除目标内容时需要同步删除相关收藏记录
  • 类型扩展: target_type字段需要支持新的内容类型扩展
  • 权限控制: 学员只能管理自己的收藏,不能查看他人收藏
  • 性能优化: 收藏列表查询需要考虑分页和缓存机制
  • 数据清理: 定期清理无效的收藏记录(目标内容已删除)
  • 统计分析: 可以基于收藏数据进行用户行为分析
  • 存储限制: 考虑对单个学员的收藏数量进行合理限制
  • 时间精度: created_at字段保证时间记录的准确性
  • 业务逻辑: 收藏和取消收藏的业务逻辑需要保证原子性
  • 内容关联: 确保target_id对应的内容确实存在
  • 索引维护: 定期维护和优化查询索引
  • 备份策略: 重要的收藏数据需要定期备份
  • 监控告警: 监控收藏功能的使用情况和异常
  • 用户体验: 收藏操作需要提供良好的用户反馈