我正在使用Sequelize进行后端集成。大部分进展顺利,但是我在理解我的联想时遇到了麻烦。
每当我创建一个模型时,都会将其放置在一个单独的文件中,在此不定义我的关联。我与协会之间没有使用很多路线。但是当我不得不使用它时,我只是将关联放在路由文件的顶部。
现在我的协会遇到麻烦了,想知道如何做得更好。当我想获得所有班级Classgroup.findAll({include: [{model: Student}]})
时,可以包括我的学生。在这里,我得到了我想要的。但是当我想做Student.findAll({include: [{model: Classgroup}]})
时,出现错误:学生未与Classgroup关联。试图在两个模型类中添加关联也无效。
我试图制作一个文件来放入我所有的关系,并按照路线中的要求进行设置,但这并没有按照我的意愿进行。
现在我的问题是:在Sequelize中与协会合作的最佳实践是什么。因为我发现了很多不同的做法,并且大多数做法是使用2-3个模型。我大约有10种具有各自关系的模型。
这是我的模型的样子:
const Sequelize = require('sequelize');
var connection = require("../db");
var Classgroup = require('./Classgroup');
var Account = require('./Account');
var Employer = require('./Employer');
const Student = connection.define('Student', {
studentID: {
type: Sequelize.UUID,
primaryKey: true,
autoIncrement: true
},
studentFirstName: Sequelize.STRING,
studentLastName: Sequelize.STRING,
birthDate: Sequelize.DATE,
sex: Sequelize.ENUM('M', 'F'),
classNumber: Sequelize.INTEGER,
education: Sequelize.STRING
//student has a classgroup
//Student has an account
});
module.exports = Student;
对我来说,这都是很新的东西,如果我忘记了一些愚蠢的事情,对不起