使用与模型类的关联进行排序

时间:2018-11-17 21:27:55

标签: express associations sequelize.js

我正在使用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;

对我来说,这都是很新的东西,如果我忘记了一些愚蠢的事情,对不起

0 个答案:

没有答案