mysql - Sequelize 上的热切加载关联

标签 mysql node.js sequelize.js

我有以下实体:

var Group = sequelize.define("Group", { name: Sequelize.STRING });
var Course = sequelize.define("Course", { name: Sequelize.STRING });
var GroupHasCourse = sequelize.define("GroupHasCourse", { name: Sequelize.STRING });
var Student = sequelize.define("Group", {   name: Sequelize.STRING });

以及以下关联:

Course.hasMany(GroupHasCourse, { as: "GroupsOnCourses"});
Group.hasMany(GroupHasCourse, { as: "CoursesOnGroups"});
GroupHasCourse.hasMany(Student, { as: "Students"});

两个问题:

  1. 这是关联小组与类(class)关系以让学生进入学科的最佳方式吗?
  2. 我正在执行以下查询:

    Course.findAll({include:[{model:GroupHasCourse, as:"GroupsOnCourses"}]}).success(function(courses){
        // courses[0].groupsOnCourses[0].GroupId
    })
    

    如何在该查询中获得左连接,这样我就不需要执行另一个查询

    Group.find(courses[0].groupsOnCourses[0].GroupId)
    

最佳答案

您是否需要连接表来获取更多数据,或者您只是连接 Corse 和 Group?如果您只想连接它们,可以这样做:

Course.hasMany(Group)
Group.hasMany(Course)

这将自动为您创建连接表。如果您想要这种方式,您的下一步将是等待 Sequelize 1.6.1 的第一个 alpha/beta/其他版本,它将支持多对多关联的急切加载。该版本将在本周内发布。

您好, 斯德波德

关于mysql - Sequelize 上的热切加载关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16065251/

相关文章:

mysql - 唯一索引允许重复条目,以防其中一个条目为 NULL

php - mysql_query ("SELECT...") 为不存在的主键值返回 NULL 值行,呈现 (mysql_num_rows > 0) 检查无用

javascript - 如何通过ldapjs修改memberOf字段

mysql - 尽管抛出超时错误并且未解决回调,AWS Lambda 函数仍正常工作

mysql - 安装Sql Server时如何选择帐户名

sql - 我如何在一个 SQL 语句中加入这个查询?

javascript - 嵌套 GET 请求 Nodejs Expressjs

javascript - 查看套接字是否等于 null

validation - Sequelize 验证方法

sequelize.js - Sequelize js自动递增主键传递空值