我有以下实体:
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"});
两个问题:
- 这是关联小组与类(class)关系以让学生进入学科的最佳方式吗?
我正在执行以下查询:
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/