如何使用feather sequelize在feather js中的联接表中设置belongsToMany关系和addi



我想在两个具有feather sequelize的模型之间添加一个多对多关系,并且在联接表中,我想添加additionnal attribut。sequelize的文档很清楚:我必须创建一个新的模型,我喜欢这个

const User = sequelize.define('user', {})
const Project = sequelize.define('project', {})
const UserProjects = sequelize.define('userProjects', {
status: DataTypes.STRING
})
User.belongsToMany(Project, { through: UserProjects })
Project.belongsToMany(User, { through: UserProjects })

但是,当我在我的羽毛应用程序中定义一个新模型时,它并没有在数据库中创建,所以我的关系不能正常工作

只是为了检查我是否正确理解:您想要一个链接表(例如user_projects),并将UserProjects模型映射到它,从而在UserProject模型之间创建多对多关系?

您可以使用hasManybelongsTo函数,而不是像那样使用belongsToMany

User.hasMany(UserProjects, {
as: 'UserProjects',
foreignKey: 'user_id' // this is what you're missing
});
Project.hasMany(UserProjects, {
as: 'UserProjects',
foreignKey: 'project_id' // this is what you're missing
});
UserProjects.belongsTo(User, {
as: 'Users',
foreignKey: 'user_id'
});
UserProjects.belongsTo(Projects, {
as: 'Projects',
foreignKey: 'project_id'
});

您需要将链接表中的user_idproject_id列定义为外键。

然后,你可以在链接表中添加你想要的任何其他属性(status或其他任何属性,都无关紧要)

相关内容

  • 没有找到相关文章

最新更新