将模型引用与关联关联起来
刚开始使用Sequelize,我已经设置了一堆模型和种子,但我无法找出引用与关联。 如果他们甚至做我认为他们做的事,我就没有看到引用的用例,但我无法在文档中找到一个好的解释。
这是多余的参考和协会?
module.exports = (sequelize, DataTypes) => {
const UserTask = sequelize.define('UserTask',
{
id: {
primaryKey: true,
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4
},
userId: {
type: DataTypes.UUID,
references: { // <--- is this redundant to associate
model: 'User',
key: 'id'
}
}
// ... removed for brevity
},
{
classMethods: {
associate: models => { <--- makes references redundant?
UserTask.belongsTo(models.User, {
onDelete: 'CASCADE',
foreignKey: {
fieldName: 'userId',
allowNull: true,
require: true
},
targetKey: 'id'
});
}
}
}
);
return UserTask;
};
使用references
创建对另一个表的引用,而不添加任何约束或关联。 这意味着这只是一种向数据库发送信号的方式,即表格可以引用另一个表格。
创建association
会为属性添加一个外键约束。 而且你可以执行关联功能背后的所有魔法。 即User.getTasks();
有关此处references
更多信息:https://sequelize.readthedocs.io/en/latest/docs/associations/#foreign-keys_1
关于此处的association
:http://docs.sequelizejs.com/manual/tutorial/associations.html