gpt4 book ai didi

sequelize.js - 如何使用feather-sequelize在feathersjs中的连接表中设置带有附加属性的belongsToMany关系

转载 作者:行者123 更新时间:2023-12-03 22:27:02 26 4
gpt4 key购买 nike

我想在两个模型之间添加多对多关系,并在连接表中添加附加属性。 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 或其他任何东西,没关系)

关于sequelize.js - 如何使用feather-sequelize在feathersjs中的连接表中设置带有附加属性的belongsToMany关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54118713/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com