gpt4 book ai didi

mysql - sequelize - 如何更新 n-m 关系中的关联,包括连接表

转载 作者:行者123 更新时间:2023-11-30 22:07:04 24 4
gpt4 key购买 nike

我有两个表(用户、标签),它们通过连接实体 (user_tag) 通过 belongsToMany 关系相互连接:

sequelize.define('tag', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
type: {
type: DataTypes.STRING
}
}, {
classMethods: {
associate: function (models) {
this.belongsToMany(models.user, {as: "users", through: models.user_tag });
},
}

sequelize.define('user', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: {
type: DataTypes.STRING,
},{
classMethods: {
associate: function (models) {
this.belongsToMany(models.tag, { as:"tags", through: models.user_tags });
}
}
}


sequelize.define('user_tag', {
type: DataTypes.STRING,
param1: DataTypes.INTEGER,
priority: DataTypes.INTEGER
}, {
freezeTableName: true,
paranoid: true
});

现在,用户可以更新他的所有标签,包括关于加入实体 (user_tag) 的所有特定信息,例如优先级和 param1。

我知道 setAssociation [例如user.setTag(myTags) ],但是,如何设置匹配的 param1 和 priority 属性?

最佳答案

根据 Sequelize's documentation当使用 belongsToMany 添加新关系时,您可以将附加属性传递给选项对象,该数据将添加到直通模型中。

user.setTag(myTags, { param1: 1, priority: 1 });

关于mysql - sequelize - 如何更新 n-m 关系中的关联,包括连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41323184/

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