node.js中sequelize处理三张表的问题
在Mysql中定义了三张表
Course表定义课程
id 主键
title 标题
subtitle 副标题
intro 介绍
等等字段
CourseVideo 表(目前课程与Video一对一关系)
id 主键
course_id 课程ID
video_url 视频地址
created_time
update_time
CourseSub 课程订阅表 (一个课程可能对应多条,一个用户订阅一个课是一条,一个用户也会订阅多个课)
id
course_id 对应的课程ID
user_id
status 订阅状态 on ,off
现在需要做一个课程列表,并且已知用户Id 及 user_id
怎么能够(尽量只通过sequlize查询mysql去处理逻辑)生成一个list数据,返回一个列表,列表每一条包含
包含 id title subtitle videourl status(当前用户订阅了就是on,没订阅就是off,其他用户的订阅无关)
想尽可能处理的优雅。请帮忙提供一下代码,查文档能想到 findAll 去查 course表 然后 association coursevideo表,之后再findAll一下 订阅表,使用where参数查出所有自己的数据。然后两个数组,在js层面去做结合。不知道有没有更好的办法,麻烦贴出代码
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
分析的问题,
你的查询主体 是 课程
Course
,也就是通过 CourseModal 去查询,示例代码如下:课程视频的数据
CourseVideo
,定义1对1的关系就好hasMany
// 最后出来的数据 list 应该是下面的类似的结构
不知道上面的实现算不算 优雅,哈哈。
在 Sequlize 中定义模型的时候,有没有定义关联?如果有,直接参考 Sequelize Association
如果没有定义,那就在查询的时候申明关联,比如(写了个大概,没调试)