所以我在Sequelize中努力与1:n关联。
我有两种模式:董事会和用户。面板始终仅与一个用户链接,但是一个用户可以创建多个面板。
我的Sequelize模型在两个单独的文件中定义,如下所示:
board.js
module.exports = (sequelize, type) => {
const Board = sequelize.define('board', {
boardId: {
type: type.INTEGER,
primaryKey: true,
autoIncrement: true,
},
title: type.STRING,
introductionText: type.STRING,
});
Board.associate = (models) => {
Board.belongsTo(models.User, {
foreignKey: 'openedBy',
});
};
return Board;
};
user.js
module.exports = (sequelize, type) => {
const User = sequelize.define('user', {
userId: {
type: type.INTEGER,
primaryKey: true,
autoIncrement: true,
},
name: {
type: type.STRING,
unique: true,
},
password: type.STRING,
});
User.associate = (models) => {
User.hasMany(models.Board, {
foreignKey: 'openedBy',
});
};
return User;
};
创建了两个数据库表(“用户”,“木板”),但是“木板”表中没有引用该用户的列,我绝对不知道为什么。你们当中有人知道为什么它不起作用吗?
谢谢。
其他信息:
这是一个MySQL数据库,我正在使用Sequelize 4.42.0版
并且我设置了.sync({ force: true })
。