首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在feather-sequelize的feather-sequelize中建立连接表中附加属性的belongsToMany关系

如何在feather-sequelize的feather-sequelize中建立连接表中附加属性的belongsToMany关系
EN

Stack Overflow用户
提问于 2019-01-10 05:34:50
回答 1查看 211关注 0票数 0

我想用feather-sequelize在两个模型之间添加多对多关系,并在连接表中添加额外的属性。sequelize的文档对此很清楚:我必须创建一个新模型,我喜欢这样使用

代码语言:javascript
复制
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 })

但是,当我在feather应用程序中定义一个新模型时,它不是在数据库中创建的,因此我的关系不起作用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-25 22:32:16

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

您可以使用hasManybelongsTo函数,而不是belongsToMany函数,如下所示:

代码语言:javascript
复制
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或其他任何属性,这都无关紧要)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54118713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档