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
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_type和target_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对应的内容确实存在
- 索引维护: 定期维护和优化查询索引
- 备份策略: 重要的收藏数据需要定期备份
- 监控告警: 监控收藏功能的使用情况和异常
- 用户体验: 收藏操作需要提供良好的用户反馈